VBAでTortoiseSVNを操作する
Windowsに限りませんが、各種データをバージョン管理ソフトで管理することがあります。アプリケーション開発の現場であればソースコードや設計書や設定データなどが管理対象になると思います。
ここではバージョン管理ソフトのSubversionのクライアントソフトのTortoiseSVNをVBAで利用する方法を紹介します。
具体的にはTortoiseSVNでExcelブックのコミットやログの表示などをVBAで行う方法です。
TortoiseSVNのコマンドラインの概要
TortoiseSVNはコマンドラインでSubversionの操作を行うことが出来ます。利用できるコマンドは以下のサイトに記載されています。
https://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-automation.html
なお、ここでは紹介しませんが、svn.exeのコマンドは以下のサイトに記載されています。
https://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-cli-main.html
TortoiseSVNのコマンドでは用意されていない場合でもSubversionでは用意されているものもありますので、一応です。詳細は上記の1つ目のURLサイトに書いてあるので、ここでは概要を説明します。
TortoiseSVNの操作はTortoiseProc.exeに引数を渡して実行することで行います。ほとんどの場合は、/commandと/pathの2つの引数を指定します。引数を含めたコマンドラインの形式は以下のようになります。
TortoiseProc.exeのパス(半角スペースがある場合)と、/pathで指定する対象ファイルはダブルクォーテーションで囲む必要があります。
Shellでexeを実行する
TortoiseProc.exeを実行するためにWScript.Shellを利用します。WScript.Shellを参照設定をする場合としない場合で書き方が2通りあります。
参照設定をする場合は、ツールメニュー→参照設定で「Windows Script Host Object Model」にチェックを付けて、WshShellクラスの変数を利用します。参照設定をしない場合は、「CreateObject(“WScript.Shell”)」でWshShellクラスのオブジェクト変数を作成して利用します。
どちらで実装しても問題ありませんが、処理速度は参照設定をした方が若干速いです。
その理由については興味があれば別ページ「VBAの高速化(クラスは参照設定+Newする)」をご参照ください。
事前準備
以下のソースコードではTortoiseSVNの各種exeファイルが環境変数PATHに登録されている前提で書いています。そのため、ソースでは「TortoiseProc.exe」という名前だけでコマンドを実行してます。
環境変数PATHに登録する場合は、「C:\Program Files\TortoiseSVN\bin;」のような感じでTortoiseProc.exeが格納されてあるフォルダを追加してください。
もし環境変数PATHに登録できない場合は、ソースの「TortoiseProc.exe」の部分をフルパスの「C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe」等の実際にインストールされているパスに書き換えてください。
TortoiseSVNのログを表示する
現在表示しているブックのSubversionログを表示します。
参照設定をしない場合の書き方で、CreateObject関数を利用しています。
TortoiseSVNのコミットダイアログを表示する
現在表示しているブックのコミットダイアログを表示します。
参照設定で「Windows Script Host Object Model」を使う場合の書き方で、WshShellクラスを利用しています。
その他コマンド
その他のコマンドはTortoiseSVNのサイトで詳細を確認して実装してみてください。
/command:の後ろが変わるぐらいで、ほとんど書き方は変わらないと思います。