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

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

ただいまの
回答率

90.48%

  • VBA

    2385questions

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

  • Access

    616questions

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

  • GitLab

    161questions

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

VBAにてGitコマンドの実行

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,043

menmen

score 13

お世話になります。すいません、、基本的な質問かもしれません。。
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コマンドを実行できれば
上手くいくのかも、っという淡い期待があるのですが、
何か良い方法はないでしょうか?
よろしくお願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • flied_onion

    2016/08/30 20:54

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

    キャンセル

  • menmen

    2016/08/31 12:55

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

    キャンセル

回答 3

checkベストアンサー

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/31 11:03

    flied_onionさん

    回答ありがとうございます!
    提案いただいたコマンドを試したところ1回で実行できました!
    バッチリ希望通りの動きとなって感動しています!w

    なのでflied_onionさんの回答を今回のベストアンサーに
    選ばせていただきます!
    また機会がありましたらよろしくお願い致します(^^)

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/31 10:56

    takasima20さん

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

    キャンセル

0

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

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

そうであれば、

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


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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/31 11:08

    jawaさん

    回答ありがとうございます!
    [CurrentDirectory]でフォルダ指定もできるんですね。。
    試しに実装したところ確かにこちらでも希望通りの動きが確認できました!

    ただこの方法だとsubをちょっと改修しなければならないので、、
    現状のsubを変更せずに実行したいとなるとflied_onionさんの回答が
    ベストとなりますので、申し訳ありませんがそちらをベストアンサーに
    選ばせていただきました。

    改めて回答ありがとうございました!
    また機会がありましたらよろしくお願いします!

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • VBA

    2385questions

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

  • Access

    616questions

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

  • GitLab

    161questions

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