アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAでコマンドラインを使って表示された文字の取得を行いたいのですが

Set wExec = WSH.Exec("%ComSpec% /c " & """" & sCmd & """")
Do While wExec.Status = 0
DoEvents
Loop
Result = wExec.StdOut.ReadAll

というコードを使って取得を行うことはできるのですが
一瞬だけコマンドプロンプトの画面が表示されるのですが
これが表示されずに文字の取得を行うにはどうしたら良いですか?

A 回答 (3件)

で、結局、両者とも機能しなかったのでしょうか?


結果報告を期待しています!
(-"-)
    • good
    • 0

あとは一時ファイルに書き出して・・・


Sub sCmdget2()
  Dim oWS As Object, oFS As Object, v As Variant
  Dim sCmd As String, sStr As String
  
  Set oWS = CreateObject("Wscript.Shell")
  Set oFS = CreateObject("Scripting.FileSystemObject")
  
  sCmd = "dir " & """C:\Program Files (x86)\""" & " /s"
  
  oWS.Run "%ComSpec% /c " & sCmd & "> %temp%\Temp.txt", 0, True
  Set v = oFS.openTextFile(Environ("temp") & "\" & "Temp.txt", 1)
  sStr = v.readAll
  v.Close: Set v = Nothing
  
  Application.VBE.Windows("イミディエイト").Visible = True
  Debug.Print sStr
  Set oFS = Nothing
  Set oWS = Nothing
Shell "explorer.exe /select, " & Environ("temp") & "\" & "Temp.txt" '出血大サービス?、タスクバー注目
End Sub
ですかね?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2015/02/26 12:46

これならコマンドプロンプトのウィンドウは寡黙になります。


Sub sCmdget()
  Dim oWS As Object, sCmd As String, sStr As String
  
  Set oWS = CreateObject("Wscript.Shell")
  sCmd = "dir " & """C:\Program Files (x86)\""" & " /s"
  oWS.Run "%ComSpec% /c " & sCmd & "|clip", 0 , True
  sStr = GetObject("\", "htmlfile").ParentWindow.ClipboardData.GetData("text")
  Application.VBE.Windows("イミディエイト").Visible = True
  Debug.Print sStr
  Set oWS = Nothing
End Sub

※ "|clip" はWindowsXPなどでは使用できません。
 Explorer で Clip.exe を検索しても無かったら諦めてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

この方法だと環境によって使えたり使えなかったりしそうなので
もし他にも方法があれば教えてください。

お礼日時:2015/02/23 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!