&tag(VBA);
*目次 [#tfbe01bd]
#contents

*参考情報 [#w9e5ffd2]
-[[昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita:http://qiita.com/opengl-8080/items/5bd8ae7fe95f5c31dfc3]]

*入門 [#daa9de82]

**マクロ開発方法 [#xb6042a2]
-Excel2007の場合、「Excelのオプション > 基本設定 > Excelの使用に関する基本オプション」で、[開発]タブをリボンに表示するをオンにしておく。
-開発タブの「Visual Basic」をクリックすると、VBA Editorが起動する。
-もしくはALT+F11。

**マクロの定義場所 [#s5973ca3]
#ref(basic1.png)

-Sheet1、Sheet2、Sheet3…はシートごとの処理。ThisWorkbookはワークブック全体の処理を記述する。
-それらに属さない一般的なマクロは「標準モジュール」に追加する。
-標準モジュールは「挿入」して追加しないと存在しない。

**ボタンを押して標準モジュールで定義したプロシージャを呼び出す [#edc1c173]
#ref(form.png)
-開発タブで「挿入 > フォームコントロール」でボタンを追加する。
-ボタンを追加したタイミングでイベントハンドラを設定するよう求められる。そこで「新規追加」を選べば新規作成することもできるし、既存のプロシージャを選ぶ事もできる。後から変更する場合右クリックして、「マクロの登録」から。
-標準モジュールの「button1_Clicked」を起点にマクロ処理を呼び出すことができる。
#pre{{
Public Sub button1_Clicked()
    Call Test("abc.txt")
End Sub


Public Sub Test(fileName As String)
    Call MsgBox(fileName, vbOKOnly, "ファイル名")
End Sub
}}

*C#から操作する [#mc3f2005]
-[[Excelの参照を追加せずにExcelを使う[C#] | zenmai software:https://zenmai.wordpress.com/2011/06/24/excel%E3%81%AE%E5%8F%82%E7%85%A7%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%9B%E3%81%9A%E3%81%ABexcel%E3%82%92%E4%BD%BF%E3%81%86c/]]
-[[C#からExcelを操作するライブラリ - gounx2の日記:http://d.hatena.ne.jp/gounx2/20090209/1234195164]]
-[[C#でExcelのラッパークラスを作る その1 » 気になるニュース(仮):http://blog.hashire.jp/none/1542/]]



-[[.Net(C#)アプリからExcelのVBAを呼び出したい(遅延バインディング) : 3流プログラマのメモ書き:http://jehupc.exblog.jp/13711436/]]
*トラブルシューティング [#s6498772]
**実行時エラー1004 [#x651a368]
-セルにFormulaを設定しようとしていて発生。なんのことか全くわからないが、Formulaの制限が1024文字でそれ以上の長さの文字列を設定しようとしていたのが制限のようだった(もっとわかりやすいエラーメッセージを表示してくれたら一発でわかるのだが)
。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS