スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

C#からエクセルVBAのマクロを記載しマクロを実行する

C#からエクセルVBAを記載し、それを実行する方法を記載します。

C#からエクセルVBAを記載するプログラム(新規エクセルブックでの場合)
//>>>>>>>>>>
//メンバ変数定義
//>>>>>>>>>>
//Microsoft.Office.Interop.Excel.Application m_MyExcelApp;
//Microsoft.Office.Interop.Excel.Workbook m_MyExcelBook;
//Microsoft.Office.Interop.Excel.Worksheet m_MyExcelSheet;

//>>>>>>>>>>
//エクセルマクロ追加
//>>>>>>>>>>
VBComponent MyModule = null;

//エクセルVBAの標準モジュールのフォルダを作成する
m_MyExcelBook.VBProject.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule);

//標準モジュール→Module1を作成する
MyModule = m_MyExcelBook.VBProject.VBComponents.Item("Module1");

//エクセルVBAが記載されたテキストファイルを指定する
MyModule.CodeModule.AddFromFile(System.Windows.Forms.Application.StartupPath + "\\ExcelVBA.txt");

//エクセルVBAの記載がおわったので開放
System.Runtime.InteropServices.Marshal.ReleaseComObject(MyModule);

ExcelVBA.txtの中身(エクセルVBA)
Public Function Hoge()
'>>>>>>>>>>
'ここに処理を記載
'>>>>>>>>>>
End Function

C#からエクセルVBAのマクロを起動する
//ExcelVBAのマクロ起動
m_MyExcelApp.Run("'" + m_MyExcelBook.Name + "'!Hoge");
関連記事

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

太字の文が入ります。 斜体の文が入ります。 下線の文が入ります。 打ち消しの文が入ります。 色付きの文が入ります。 絵文字を挿入します。 
非公開コメント

メモ
「C#からエクセル操作」のカテゴリのプログラムだと Excelプロセスがきちんと開放されない可能性が あるので後で書き直します。
検索フォーム
カレンダー
07 | 2012/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
RSSリンクの表示
リンク