【Sourcetree】VBAコードのバージョン管理【vbac】

logo 仕事術

マイクロソフトOfficeでのVBAコードをバージョン管理したいという話。

手順

  1. 初回のみSourcetreeでレポジトリを作成
  2. vbacでVBAコードを分離
  3. エディタで編集
  4. vbacでVBAコードを結合し挙動を確認
  5. Sourcetreeでコミット

詳細は以下のサイト様で確認

vbacでエクセルVBAのソースコードをGitバージョン管理する方法
エクセルVBAのソースコードをコマンドラインでインポート、エクスポートができるvbacというツールの使い方を紹介します。これでエクセルVBAのGitバージョン管理が格段にパワーアップします。
Excelマクロ(VBA)をVSCodeで編集したい
Visual Studio CodeをExcelマクロ編集時のエディタとして使用しつつ、Excel単独ではできないgit等による構成管理まで行うことを目標に簡単な手順を紹介します。

Tips

Sourcetreeが文字化けする【cp932】【windows】

解決策:レポジトリのフォルダに「.gitattributes」を作成し、下記を記述する。

*.bas working-tree-encoding=cp932
*.dcm working-tree-encoding=cp932
*.frm working-tree-encoding=cp932

VBAソースの2バイト文字の文字化けが解消される。

因みにcp932ではなく「sjis」とした場合は依存文字でエンコードエラーを吐くので注意。

誰だよ①みたいな依存文字使ったの…

vbacのコマンド打つのが面倒

解決策:batファイルで実行する

こんな感じ

combine用コード

@echo off

SET /P selected="VBAコードを結合しますか?(Y/N)?"

if /i {%selected%}=={y} (goto :yes)
if /i {%selected%}=={yes} (goto :yes)

exit

:yes
pushd %0\..
cscript vbac.wsf combine
  
exit

decombine

@echo off

@echo off

SET /P selected="VBAコードをエクスポートしますか?(Y/N)?"

if /i {%selected%}=={y} (goto :yes)
if /i {%selected%}=={yes} (goto :yes)

exit

:yes
pushd %0\..
cscript vbac.wsf decombine
  
exit

タイトルとURLをコピーしました