見出し画像

GitHubによるVBAソースコードの管理

mun

【目的】

・VBAで作成したコードの過去の履歴が見れないため、GitHubで追えるようにする。
・手作業コピペではなく、gitにて自動でリモートにpush
・せっかくだからgithubに草生やしたい
・備忘用でNoteに書いておきたい

【準備物】

・vbac.wsf
igeta様作成(感謝します) VBAのソースコードを抽出。
下記URLからDLし、vbac.wsfを用意

・Git Bash
Windows は必須。MACは不必要(ターミナルでおk)

・出力用xlsmファイル
vbac.wsfを許可するためにExcelにて、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定→VBAプロジェクトオブジェクトモデルへのアクセスを信頼する
にチェックをします

今回は例として"TestGit.xlsm"を使用します。

sheet1に二つのボタン
通知でMsg
TESTでななち

・githubアカウント
この記事を見ているなら作成済でしょう。


【初期設定】

・Git BashによるGithubのアカウント設定
①PC内検索覧にGitBashと入力し起動
(このときショートカットを作成しておくと楽)

コマンドプロンプトみたいなGitBash

②Githubのアカウント設定
自分のGithubアカウントを下記コマンドで設定します。
git config -- global user.name "ユーザー名"
git config --global user.emaill"メールアドレス"


【Git方法】

【ローカルリポジトリの作成】

①下記のようにフォルダを構成

任意フォルダ名\┳bin\━━━TestGit.xlsm
                           ┗vbac.wsf 

②windows+R でコマンドプロンプト起動、
cd "フォルダパス"コマンドで
vbacとbinフォルダがある場所までディレクトリ移動  

③cscript //nologo vbac.wsf decombine
とコマンドを実行
下図のように表示されると出力されます。

①のさきほどのフォルダを確認すると、新たに"src"フォルダが作成されていて、その中に”TestGit.xlsm”フォルダ、さらにその下の階層にソースコードが出力されます。中身はメモ帳やVS Code で確認できるよ。

出力結果


【GitHubのリポジトリ新規作成】

Github側でプルするリポジトリを作成します。
①GitHubにブラウザでログインし、右上の"+"からnew repositoryの作成

プロフィール画像の左

②各項目を設定します。
Repository name  -->リポジトリの名前(今回は"VBANanachiGitHubText")
Public/Private       -->公開範囲を設定します。(今回は"Public")

画面下の"Crate repository"からリポジトリを新規作成

③作成後、以下の画面に推移

HTTPS を選択し、https://.github.com/~~~~~~.gitをコピーしておきます。


【GitHubにPush】

①GitBashを起動
②cd  と入力し、プッシュするフォルダをGitBashにドラックアンドドロップしてフォルダパスを入力後、実行
今回の場合はsrcフォルダにある"TestGit.xlsm"

ディレクトリ変更されます

②git init コマンドを実行
gitファイルが作成されます。

③git add .  コマンドを実行します

”.”を忘れずに!!

④ git commit -m "コミット名" を実行します

⑤git remote add origin "取得したURL"  を実行します。

⑥git push origin master でPushします。

⑦GitHubでリポジトリを確認するとちゃんとPushされています!

VBAでしっかりコミットされて、草も生えていました

Overviewにて表記されている




【まとめ】

GitHubにてVBAソースコードの管理が可能になりました。


MicrosoftはVisualStudioみたいにVBAもGit管理できるようにしてクレメンス


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
mun
ほぼ雑記です。 プログラム ゲーム 日記 twitter→https://twitter.com/mune70856689 VBA VB.NET C# JavaScript html css EXCEL Acsses