【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、Excel、PowerPointといったOfficeアプリのアドオンを.NETベース、まあC#で開発できるソリューションですね。
↓のような形でアドインという形でボタンなどを追加(Windows Formベース)して、COMアドインを通じて、ExcelやWordのコンテンツをコントロールすることができます。
詳しい解説は以下がよろしい感じ。
@IT:特集 .NET言語による次世代Officeソリューションの開発
ただ、最近はVSTOよりも、Officeアドインのほうがいい感じ?
こちらは、WebベースでOfficeを操作するためのjsライブラリが提供されているアドイン形態という感じです。
こっちだと、ExcelOnlineやOutlook On The Webなどでもアドインとして提供することが可能ですので、今のクラウドベースに合わせるならこっちかな、と。
今回は、C#ベースのほうが、既存のCRMに関するナレッジも適用させやすいかな? ということで、VSTOを選択しています。
いずれ、Officeアドインもやってみたいところ。
VSTOのインストール
VSTOPのインストールにはWeb Platform installerが必要になります。
検索ボックスで「Office」などで検索すると表示されます。これを追加します。
もしくは、以下からダウンロードも可能です。
Office Developer Tools https://www.visualstudio.com/ja/vs/office-tools/
Visual Studioを立ち上げると、Office/SharePointというのが追加されています。
今回はExcelで作成。
こんな感じで立ち上がります。
リボンをカスタマイズした場合は、追加から「リボン(ビジュアルデザイナー)」
WindowsFormのようにカスタマイズできます。
とりあえずHello World!だけ。
ThisAddInクラスのプロパティにApplicationがありますので、そこから現在のExcelの情報にアクセスすることができます。
ActiveSheetを取得して、A1セルにHello World!を出してみました。
Dynamics CRMと繋いでみた
あと、せっかくなので、Dynamics CRMと接続して、取引先企業を取得するだけのprogramを作ってみました。
こんな感じで出すことができます。