見出し画像

VS2019でEXCELファイルを操作する

Visual Studio 2019の 言語 C# で EXCELを操作したい。

Visual Studio 2019は、Professional版を基本とするが(もちろん Enterprise版でもOK) 無料版の Communityでも構わない。 無料のであっても問題なく開発できる。

Office(EXCEL) は、現時点での最新版 MS Office 2019を使う。(開発用PCにインストールしてある)
ちなみに OSは Windows10 Pro。


以前、Visual Studio 2010で開発した(EXCELをアクセスした)ソフトがあったので、そこから派生(流用)して 開発を始めようとしてみたが、ソリューションを起動し ビルドして見ると、エラーが発生してビルド出来ない。

VS2019-EXCEL操作 -01a

名前空間Microsoftの中に、Officeが無い! という趣旨のメッセージです。

これまでの Visual Studioであれば、[プロジャクト]→[参照の追加]→COM内
   □ Microsoft Office 14.0 Object Library  を
追加してあげれば、問題無くアクセスするプログラムがビルド出来ていた。

ところが、VS2019では、それをやってもビルドに失敗する。

エラーメッセージとしては、
「Microsoftという名前空間の中に Office という名前が存在しない」 との事
なんのこっちゃ?

新しい Office 2019になって 対応するLibraryのバージョンが上がって、バージョンの違う新しい「参照」を追加しないといけにのかな? と思い、
  □ Microsoft Office 16.0 Object Library  というのを見つけたので、
それにチェックを入れてみた。

それでも ビルドが成功しない。 今度は Office というのはあるが、「 Interopが無い」というエラーメッセージが出るようになった。

どうも Visual Studio 2019では、Excelをアクセスするための環境作成が、根本的に違うようだ。


1.EXCEL制御のためのVS2019の環境設定

1) Windows10のスタートメニューから、
   Visual Studio Installer (インストーラー)
 を探し、これを起動する。

VS2019-EXCEL操作 -02 VS installer

2) インストーラの「変更」ボタンをクリック

VS2019-EXCEL操作 -02a 変更

3)すると インストーラー↓ が表示されるので、
 「個別のコンポーネント」タブをクリックし、

VS2019-EXCEL操作 -02b

4) Visual Studio Tools  for Office という項目に ①チェックを入れ、②変更ボタンを押して、これをインストールします。

VS2019-EXCEL操作 -02c

インターネットからのダウンロードが始まり(30分ほどかかる)、必要なToolsをインストールされると、何の問題も無く ビルドが出来るようになりました。

逆に、ライブラリ □ Microsoft Office 14.0 Object Library や □ Microsoft Office 16.0 Object Library に参照の追加でチェックを入れておかなくても ビルドが可能になっています。

プロジェクトごとに 毎回 行うのと違って (参照だとそうなってしまう)プロジャクトに関係なく (1回だけインストールを行えば)EXCELをアクセスするプログラムが作れるようになります。

よって、Object Libraryのバージョン(14.0か15か16か?)にも関係が無くなります。

これは、無料版のCommunity でも同じ事です。(無料版でもビルド可能)

ただ、こんな仕様変更、何のアナウンスも無しに コロッと変えられてしまうと、開発環境の設定だけで 訳が分からなくなり、開発が何日も止まってしまうことになりかねません。

いつもながら Microsoftには 困ったものだ・・・

この記事が気に入ったらサポートをしてみませんか?