2016-05-27 4 views
0

私はこのコードに必要な方法をどのようにしたらよいか質問します。私は過去3時間を探していて、私が望むことを実行するためにコードを一緒にメッシュする方法を見つけることができませんでした。私がしたいことの概要を以下に示します。ユーザー入力ボックスにフォルダ名を入力し、指定されたディレクトリにフォルダを検索するように設定します。

ユーザがマクロを実行し、InputBoxがポップアップし、と表示されます。を入力します。そこから、Application.GetOpenFile(またはこれまでのアプリケーションまたはdir関数)が指定されたディレクトリで、ファイルではなくフォルダで検索を開始したいのですが(同じ名前のフォルダ内に複数のファイルがある可能性があるため)、ユーザーフォルダに移動してから、ユーザーが開く適切なファイルを選択します。その後、ファイルが選択されると、Excelワークシートにそのファイルが開きます。

答えて

0

シェルを使用してみてください。この質問のユーザーbburns.kmの機能は次のとおりですCapture output value from a shell command in VBA?

これは、フォルダとディレクトリの一覧だけを表示するシェルコマンドと組み合わせることで、必要な場所に移動できます。 @DevinTrowbridgeはあなたの提案のために、私はこのショットを与える

Public Function ShellRun(sCmd As String) As String 

    'Run a shell command, returning the output as a string' 

    Dim oShell As Object 
    Set oShell = CreateObject("WScript.Shell") 

    'run command' 
    Dim oExec As Object 
    Dim oOutput As Object 
    Set oExec = oShell.Exec(sCmd) 
    Set oOutput = oExec.StdOut 

    'handle the results as they are written to and read from the StdOut object' 
    Dim s As String 
    Dim sLine As String 
    While Not oOutput.AtEndOfStream 
     sLine = oOutput.ReadLine 
     If sLine <> "" Then s = s & sLine & vbCrLf 
    Wend 

    ShellRun = s 

End Function 
+0

おかげで、これは狂った質問のように見えるかもしれませんが、どのように私は、私はこの前のようなものをやったことがないVBAでのシェルを使用していますか? – Eddie

+0

MicrosoftのWebサイト(https://msdn.microsoft.com/en-us/library/xe736fyk%28v=vs.90%29.aspx)のドキュメントを参照してください。シェル "YourCommandAsString"を呼び出すことができます –

+0

ありがとう@Devin、私はそれを見てみましょう – Eddie

関連する問題