Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【VSTO】【Excel】【C#】【Dynamics CRM】Excelアドインを触ってみた

お仕事でExcel連携をやりそうになったので、以前から試してみたかったVSTOを触ってみました。ほんと、とりあえず触ってみたという感じですが。

■Office ソリューションの開発の概要 (VSTO)

https://msdn.microsoft.com/ja-jp/library/hy7c6z9k.aspx

Excel のドキュメント レベルのカスタマイズのプログラミングの概要

https://msdn.microsoft.com/ja-jp/library/f27xe9xb.aspx

VSTOって?

Visual Studio Tools for Office、略してVSTOらしいです。

Word、ExcelPowerPointといったOfficeアプリのアドオンを.NETベース、まあC#で開発できるソリューションですね。

↓のような形でアドインという形でボタンなどを追加(Windows Formベース)して、COMアドインを通じて、ExcelやWordのコンテンツをコントロールすることができます。

f:id:sugimomoto:20161105173328p:plain

詳しい解説は以下がよろしい感じ。

@IT:特集 .NET言語による次世代Officeソリューションの開発

ただ、最近はVSTOよりも、Officeアドインのほうがいい感じ?

www.ka-net.org

こちらは、WebベースでOfficeを操作するためのjsライブラリが提供されているアドイン形態という感じです。

こっちだと、ExcelOnlineやOutlook On The Webなどでもアドインとして提供することが可能ですので、今のクラウドベースに合わせるならこっちかな、と。

今回は、C#ベースのほうが、既存のCRMに関するナレッジも適用させやすいかな? ということで、VSTOを選択しています。

いずれ、Officeアドインもやってみたいところ。

VSTOのインストール

VSTOPのインストールにはWeb Platform installerが必要になります。

検索ボックスで「Office」などで検索すると表示されます。これを追加します。

f:id:sugimomoto:20161105173413p:plain

もしくは、以下からダウンロードも可能です。

Office Developer Tools https://www.visualstudio.com/ja/vs/office-tools/

Visual Studioを立ち上げると、Office/SharePointというのが追加されています。

今回はExcelで作成。

f:id:sugimomoto:20161105173426p:plain

こんな感じで立ち上がります。

f:id:sugimomoto:20161105173433p:plain

リボンをカスタマイズした場合は、追加から「リボン(ビジュアルデザイナー)」

f:id:sugimomoto:20161105173446p:plain

WindowsFormのようにカスタマイズできます。

f:id:sugimomoto:20161105173519p:plain

f:id:sugimomoto:20161105173540p:plain

とりあえずHello World!だけ。

ThisAddInクラスのプロパティにApplicationがありますので、そこから現在のExcelの情報にアクセスすることができます。

ActiveSheetを取得して、A1セルにHello World!を出してみました。

Dynamics CRMと繋いでみた

あと、せっかくなので、Dynamics CRMと接続して、取引先企業を取得するだけのprogramを作ってみました。

こんな感じで出すことができます。

f:id:sugimomoto:20161105173854p:plain

参考

wannabe-note.com