質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Q&A

解決済

3回答

8806閲覧

VBAにてGitコマンドの実行

menmen

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

0グッド

0クリップ

投稿2016/08/30 11:30

編集2016/08/31 03:56

お世話になります。すいません、、基本的な質問かもしれません。。
Access2013にてGitのクローンを自動実行するVBAを実装しており、
こちらはコマンドプロンプトで実行しようとしていまして、
直接コマンドプロンプトでクローンコマンドを実行できることを確認しています。
実行したコマンドは以下となります。

cd [出力先フォルダパス]
git clone https://[ユーザ名]:[パスワード]@gitlab.[ドメイン]/intra-system-group/[プロジェクト名].git

今度は同じコマンドをVBAにて実行しようとしていまして、
コマンドプロンプトを実行するVBAは以下となります。

Sub CommandPrompt_Execute(CommandStr As String) Dim WSH, wExec, sCmd As String, Result As String Set WSH = CreateObject("WScript.Shell") Set wExec = WSH.Exec("%ComSpec% /c" & CommandStr) Do While wExec.Status = 0 DoEvents Loop wExec.StdOut.ReadAll ' Result = wExec.StdOut.ReadAll ' MsgBox Result Set wExec = Nothing Set WSH = Nothing End Sub

cdコマンドを実行してからcloneコマンドを実行したいのですが、
連続でコマンドを実行するやり方がよくわからず、、
[/c]部分を除去してExecを連続でやろうとしてもうまくいかずで、、
1回のコマンドでフォルダ指定とcloneコマンドを実行できれば
上手くいくのかも、っという淡い期待があるのですが、
何か良い方法はないでしょうか?
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

flied_onion

2016/08/30 11:54

コードの部分は ``` で挟むか、コードを選択して codeボタンを押してコードブロックにしてください
menmen

2016/08/31 03:55

flied_onionさん ご指摘ありがとうございます! コードの記述について失礼致しました。 以後気を付けます。。
guest

回答3

0

複数コマンドを連続実行したいのであれば、takasima20さんの言われるように複数コマンドの部分をバッチファイルにまとめて、VBAからはそのバッチを呼び出す方が自然なつくりになると思います。

しかし、今回やりたいことは複数コマンドの連続実行したいというより作業フォルダを指定したいのではないのでしょうか?

そうであれば、

WSH.CurrentDirectory = "C:\Work" '作業フォルダの指定

のような記述で作業フォルダの指定ができます。

見当違いなアドバイスでしたらすみません。
参考までに。

投稿2016/08/31 01:18

編集2016/08/31 01:19
jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

menmen

2016/08/31 02:08

jawaさん 回答ありがとうございます! [CurrentDirectory]でフォルダ指定もできるんですね。。 試しに実装したところ確かにこちらでも希望通りの動きが確認できました! ただこの方法だとsubをちょっと改修しなければならないので、、 現状のsubを変更せずに実行したいとなるとflied_onionさんの回答が ベストとなりますので、申し訳ありませんがそちらをベストアンサーに 選ばせていただきました。 改めて回答ありがとうございました! また機会がありましたらよろしくお願いします!
guest

0

ベストアンサー

まずは、スペースを含まないフォルダと、gitの代わりにechoかなにかの組み合わせで試して欲しいですが、

cd [出力先フォルダパス] && git clone https://[ユーザ名]:[パスワード]@gitlab.[ドメイン]/intra-system-group/[プロジェクト名].git

としたらどうでしょう。
cdに失敗した場合は、gitコマンドは実行されないはずです。

パスがスペースを含む場合は ""で括るのをわすれずに。

投稿2016/08/30 12:08

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

menmen

2016/08/31 02:03

flied_onionさん 回答ありがとうございます! 提案いただいたコマンドを試したところ1回で実行できました! バッチリ希望通りの動きとなって感動しています!w なのでflied_onionさんの回答を今回のベストアンサーに 選ばせていただきます! また機会がありましたらよろしくお願い致します(^^)
guest

0

やったことはないですけど、バッチファイルを作って動かしたら?

投稿2016/08/30 11:53

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

menmen

2016/08/31 01:56

takasima20さん 回答ありがとうございます! 確かにバッチファイルで実現可能だと思いますが、 今回はVBAで挑戦したいので。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問