普段利用するテキストエディタはVisual Studio Code(VSCode)を利用していますが、VSCodeではVBAのデバッグを行うことができず、VBAを開発する時だけはVisual Basic Editor(VBE)でコードを記述していました。
VBEの開発環境ではソースコードのバージョン管理やハイライト表示がなく視認性が低いなど使いづらさを感じていました。
VBAの開発環境を改善できないか調査する中で、VSCodeで編集したソースコードをVBEに取り込めることが分かりました。
これにより、コード編集はVSCode、デバッグは今まで通りVBEで行う開発環境に改めました。
この記事ではVSCodeを利用してVBAの開発環境を構築する手順を記載します。
マクロ設定の変更
VBEをVBAマクロから操作可能にするため、Excelのオプションからマクロ設定を変更します。
[Excelのオプション] – [セキュリティセンター] – [セキュリティセンターの設定] – [マクロの設定]をクリックします。
[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する]にチェックします。
text-scripting-vbaモジュールの配置
VBEにコードを取り込むツールをGitHubよりダウンロードします。
https://github.com/tcsh/text-scripting-vba
ダウンロードしたフォルダ内にExcelファイルを保存します。
VBEを開き[ThisWorkbook]にダウンロードしたフォルダ内の[src/ThisWorkbook.cls]内のコードをコピーします。
ソースコードの取り込み
Excelファイルを開くと取込用のマクロが自動実行され、フォルダ内のmain.bas, modSample.basに記述されているサンプルマクロが取り込まれます。
モジュール名はソースコードの1行目に定義します。
Attribute VB_Name = "モジュール名"
Excelの起動時以外にも取込用のマクロ(reloadModule)を手動で実行することでソースコードを取り込むことができます。
取込対象のソースコードはlibdef.txtに対象ファイルを定義することで取込を行うことができます。
自動取込の設定変更
初期設定では、取込用のマクロが自動実行されるようになっています。自動実行の設定を変更するには、[ThisWorkbook.cls]内の[ENABLE_WORKBOOK_OPEN]の定義を切り替えます。
'ワークブック オープン時に実行する(True) / しない(False) 'Const ENABLE_WORKBOOK_OPEN As Boolean = True '←コメントアウト Const ENABLE_WORKBOOK_OPEN As Boolean = False '←コメントを外す
VBEでデバッグの実行
取込用のマクロを実行すると追加したマクロが追加されています。
デバッグはVBEで今まで通り行うことができます。
VBAの開発環境を構築することで、VSCodeでソースコードの編集 ⇒ 取込マクロの実行 ⇒ VBEでデバッグの繰り返しでVBAの開発を行うことができるようなりました。