Visual Studio CodeでVBAの開発環境を構築する
2020/06/02
普段利用するテキストエディタは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の開発を行うことができるようなりました。
Google AdSense PC
Google AdSense PC
関連記事
-
-
[Soap UI]プロパティの使い方
Soap UIでプロパティを使用したテスト Soap UIではSOAPリクエスト内のデータはプロパティによって置き換えることができ、リクエスト送信などをトリガー …
-
-
VMware ESXiにSSH接続してコマンドを実行する方法
SSH接続の設定手順 ESXiはSSH接続した端末から、ゲストOSの起動やVMの作成などのコマンドを実行することができます。 デフォルトの設定ではSSHが無効に …
-
-
[jQuery]セレクトボックスを操作する方法
jQueryでセレクトボックスを操作する セレクトボックスの値を参照したり、任意の値を選択状態にするなど、jQueryを使用したセレクトボックスの操作方法を記載 …
-
-
[Soap UI]Webサービスのテストツール
Soap UIでWebサービスをテストする 今回の記事ではWebサービスのテストツールSoap UIの簡単な使い方を記載していきます。 Soap UIとは So …
-
-
Webサービス WebAPIの作り方
ASP.NET(C#)でWebサービスを作成する この記事ではVisual StudioでSOAP形式のWebサービスを作成する方法について記載します。 Vis …
-
-
Webサービス Web APIのまとめ
Webサービス Web APIを調べる Webサービス、Web APIについて調べた結果を簡単にまとめました。 Webサービス、Web APIとは HTTPなど …