Tagged: Excel

以前、WSH JScriptでExcel操作で、
Excelブックを新規作成して、セルを編集して、ファイルに書き込むまでのサンプルを紹介しましたが、
今回は、保存済みのExcelを読み込み、任意のセルを読み取る処理。

 
覚え書き程度ということで、いきなりソース。
(さらに…)

WSHを使用した、Excel操作の備忘録。
 

新規Excelブックを作成し、セルB2に、現在日時を表示し、保存するまでの処理。

WSHでExcel操作

 

前に、C#からの操作を紹介したけど、これの簡易版。
[C#] プログラムからExcelファイルを読み書きする方法

 
(さらに…)

C#でExcelファイルを読み書きするプログラムと、そのプログラム(exe)を配布するためのインストーラを作ってみた。

C#でExcelファイルを読み書きするプログラム
何故態々インストーラを作成するのか?

それは、作成したExcelを使ったプログラムは、exeの配布だけでは他のPCでは動かないため。
Excel関連のDLLも一緒に配布する必要がある。

例えば、前に作成したサンプルアプリの場合、配布時は以下のDLLが必要。

  • Microsoft.Office.Interop.Excel.dll
  • Microsoft.Vbe.Interop.dll
  • office.dll
  • stdole.dll

 

⇒これ、後から気づいたけど実は認識誤り(.NET Framework 3.5までの話)。
 .NET Framework 4以降ではDLL配布を不要にする方法がある。
 説明も後記するので最後までちゃんと読んでね。

 

昔のVisual Studioではセットアッププロジェクト(Windows ベースのアプリケーションのmsiインストーラ)を作成する際、必要なDLLを自動で抽出してくれていた。

インストーラ付きで配布するのが嫌という場合、exeと抽出されたDLLだけを他PCにコピーしても動作する。
ただ、インストーラ無しで、抽出されたDLLを勝手に再配布するのはNGかも知れない。
あと、勿論、配布先PCにもMicrosoft Excelをインストールしておく必要はある。

じゃぁ、昔みたいにインストーラを作ればいい。

と、思ったら、、
Visual Studio 2012以降では、セットアップ プロジェクトが無くなり、ウィザードでインストーラ作成(ディプロイメント)することが出来なくなってしまったらしい。

・・・それは困った。

必要なDLLはMSDNとかに載っているかもしれないけど、前と同じような方法ができないか調べてみた。

 

すると、従来のセットアッププロジェクトに代わり、InstallShield Limited Editionを使ってインストーラを作れることが分かった。
でも、InstallShieldって有料じゃなの?

と思ったけど、このLimited Editionってのは簡易版で無料らしい。

ただ、無料版のVisual Studio Expressでは使えず、Visual Studio Professional以降じゃないと、InstallShield Limited Editionは使えないようだ。

 

という事で、おさらいも兼ねてVisual Studio 2013を使ってExcelを使ったプログラムと、インストーラをInstallShieldで作ってみることにした。

 
 

Excel用のプログラム作成

まずは、C#でExcelを使ったプログラムを作成。
exeの作成方法は、ほぼ前回と同じ。
(さらに…)

Excelに保存したデータを利用して、何かプログラムを作ろうとした場合、通常はExcelマクロなんかを使うことが多いと思う。

実際、マクロはVBA(言語的には旧Visual Basic 6.0)を利用するため、コーディングの難易度が低く、ちょっとした表計算やグラフ作成なら簡単に扱うことができ便利。

だけど、既存のExcelにマクロ追加など手を加えたくなかったり、複数のExcelデータを利用した処理を行いたかったり、他システムとの連携や、ちょっと複雑な処理を加えたいといった場合は、マクロはでは役不足。

C#からExcelを利用するプログラムについて作り方をよく忘れてしまうんで、覚書きとしてメモっておくことにした。
10
開発言語はC#(VB.NETなども同様)で、実行環境にはExcelが必要。

今回は、Visual Studio 2010 Professional + Microsoft Office Excel 2007
の組み合わせで実行したけど、
Visual Studio 2012 Express for Windows Desktop + Microsoft Excel 2010
の組み合わせでも問題なく動作した。

<追記>
Visual Studio 2013+Microsoft Excel 2013とかも基本的に同じようなやり方で動作する。

作成方法

(さらに…)