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をアクセスした)ソフトがあったので、そこから派生(流用)して 開発を始めようとしてみたが、ソリューションを起動し ビルドして見ると、エラーが発生してビルド出来ない。
名前空間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 (インストーラー)
を探し、これを起動する。
2) インストーラの「変更」ボタンをクリック
3)すると インストーラー↓ が表示されるので、
「個別のコンポーネント」タブをクリックし、
4) Visual Studio Tools for Office という項目に ①チェックを入れ、②変更ボタンを押して、これをインストールします。
インターネットからのダウンロードが始まり(30分ほどかかる)、必要なToolsをインストールされると、何の問題も無く ビルドが出来るようになりました。
逆に、ライブラリ □ Microsoft Office 14.0 Object Library や □ Microsoft Office 16.0 Object Library に参照の追加でチェックを入れておかなくても ビルドが可能になっています。
プロジェクトごとに 毎回 行うのと違って (参照だとそうなってしまう)プロジャクトに関係なく (1回だけインストールを行えば)EXCELをアクセスするプログラムが作れるようになります。
よって、Object Libraryのバージョン(14.0か15か16か?)にも関係が無くなります。
これは、無料版のCommunity でも同じ事です。(無料版でもビルド可能)
ただ、こんな仕様変更、何のアナウンスも無しに コロッと変えられてしまうと、開発環境の設定だけで 訳が分からなくなり、開発が何日も止まってしまうことになりかねません。
いつもながら Microsoftには 困ったものだ・・・
●
この記事が気に入ったらサポートをしてみませんか?