Excelマクロをvscodeで書きたいんよね。

1 min read読了の目安(約1400字

2021/06 現在はSES企業で働いてるため、Excelを使うことが多いみはるです。

普段使い慣れていない道具で書くのはとてもつらい。
なのでvscodeで書けないかと調べてたら、こんなやり方を見つけました。

目次

  • 必要なもの
  • 開発環境構築
  • Excel の設定
  • インポート&エクスポート
  • vbac.wsf とは
  • vscode の拡張機能について

必要なもの

  • vscode
    お好みで拡張機能をインストール
    • VSCode VBA - Scott Spence
    • vba-snippets - Scott Spence
    • vscode-vba-icons - Scott Spence
  • powershell
  • vbac.wsf
  • Excel

開発環境構築

ディレクトリ構成はお好みで。

例)
mkdir ~/work/vba_project/bin
cd ~/work/vba_project
wget -Uri https://raw.githubusercontent.com/vbaidiot/ariawase/master/vbac.wsf -OutFile "vbac.wsf"

※ bin の中に、Excelファイルを配置する。

Excel の設定

Excelのオプション -> トラストセンター -> トラストセンターの設定 ->
マクロの設定 -> VBA プロジェクト オブジェクトモデルへのアクセスを信頼する。

上記にチェックを入れ、OKボタンをクリックして保存する。

インポート&エクスポート

以下のコマンドを実行するとExcelファイルへ、インポート&エクスポートができる。
ただし、先にExcelで標準モジュールを作成する必要がある。

cscript vbac.wsf decombine -- マクロをエクスポート
cscript vbac.wsf combine -- マクロをインポート

エクスポートするとvbac.wsf と同階層にsrc フォルダが作成され、その中に標準モジュールなどの、ソースファイルが作成される。
インポートする際はsrc フォルダの中にあるソースファイルを読み込ませる。

先にエクスポートして作業用ファイルを生成するのが無難ですね。
以上で環境構築終了です。以下は備考として記します。

vbac.wsf とは

いげ太さん が制作している Ariawase という VBAライブラリの一部です。
同階層にあるbin の中にある、xlsmファイルからソースを作成します。

いげ太さん Twitter:https://twitter.com/igeta
Ariawase:https://github.com/vbaidiot/ariawase
※ AriawaseはMITライセンスです。

vscode の拡張機能について

basやclsは自動的に関連付けされますが、dcmはされません。
setting.json に下記を追記します。

"files.associations": {
         "*.dcm":"vba",
 }

それでは、良きエンジニアライフを!!