• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBS内部で複数の答えを出し一つのダイアログに纏めて出力する方法ってど)

VBS内部で複数の答えを出し一つのダイアログに纏めて出力する方法ってどうやるんでしょうか?

このQ&Aのポイント
  • VBS内部で複数の答えを出し一つのダイアログにまとめて出力する方法について質問です。具体的には、複数のソースを使用してそれらをまとめた結果を、WScript.Echoで出力する方法を知りたいと思っています。
  • 現在、VBSのソースコードを使用して、指定のフォルダ内にあるテキストファイルの一覧を表示しています。しかし、複数のソースを使用してその結果を一つのダイアログにまとめて出力する方法が分からないため、質問させていただきます。
  • VBSを使用して複数のソースの結果をまとめ、一つのダイアログに出力する方法について質問です。現在は指定のフォルダ内のテキストファイルの一覧を表示していますが、複数のソースを使用してそれらをまとめる方法が分からないため、アドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

取得部分を関数化して、まとめて結果を出力したらいいです。 ------------------------------------------------------- サンプルは見やすさのために、全角スペースを使用しています。 コピペするときは、全角スペースを半角スペース2個に置換して使ってください。 ------------------------------------------------------- Option Explicit Dim fso Dim tmpMessage Set fso = CreateObject("Scripting.FileSystemObject") tmpMessage = "ファイル一覧:" & vbNewLine 'C:\1\の中を検索 Call GetFindText("C:\1", tmpMessage) 'C:\2\の中を検索 Call GetFindText("C:\2", tmpMessage) '結果出力 WScript.Echo tmpMessage '-------------- '以下は取得関数 '-------------- Sub GetFindText(ByVal p_strPath, ByRef p_msg)   Dim src   Dim FileName   Dim FileEx   Set src = fso.GetFolder(p_strPath) ' 対象フォルダの指定   ' 指定のフォルダに格納された各ファイルを処理する   For Each FileName In src.Files     FileEx = fso.GetExtensionName(FileName) ' ファイル名から拡張子を抜き出す     If LCase(FileEx) = "txt" Then ' 拡張子を小文字化してから比較       p_msg = p_msg & FileName & vbNewLine     End If   Next End Sub

sakusa001
質問者

お礼

取り敢えずソースから貼付け→少し改変して動作確認して動作した所 確かに自分の求める答えはこれだと思いました。 tmpMessageに答えを送くり続ければそれは蓄積されて WScript.Echo tmpMessage って事みたいですね。 凄くシンプルな形なので参考にさせて頂きますありがとうございます!!

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 細かい部分は、sakusa001 さんがお示しの ソース のままにしております。 #2 さんと同じく >サンプルは見やすさのために、全角スペースを使用しています。 >コピペするときは、全角スペースを半角スペース2個に置換して使ってください。 【第1案】複数の フォルダ名 を配列の要素として列挙しておく '------------------------------------------------------- Set fso = CreateObject("Scripting.FileSystemObject") myPath = Array("hoge1", "hoge2", "hoge3") tmpMessage = "ファイル一覧:" & vbNewLine For i = 0 To UBound(myPath)  Set src = fso.GetFolder("C:\1\" & myPath(i)) ' 対象フォルダの指定  ' 指定のフォルダに格納された各ファイルを処理する  For Each Filename In src.Files   FileEx = fso.GetExtensionName(Filename) ' ファイル名から拡張子を抜き出す   If LCase(FileEx) = "txt" Then ' 拡張子を小文字化してから比較    tmpMessage = tmpMessage & Filename & vbNewLine   End If  Next Next WScript.Echo tmpMessage '------------------------------------------------------- 【第2案】複数の任意の フォルダ を選択できるようにする '------------------------------------------------------- Set fso = CreateObject("Scripting.FileSystemObject") ' 指定のフォルダに格納された各ファイルを処理する tmpMessage = "ファイル一覧:" & vbNewLine Do  Set myPath = CreateObject("Shell.Application") _   .BrowseForFolder(&O0, "フォルダを選んでください(キャンセルで終了します)", _   &H1 + &H10, "C:\1")  If myPath Is Nothing Then Exit Do  Set src = fso.GetFolder(myPath.Items.Item.Path) ' 対象フォルダの指定  For Each Filename In src.Files   FileEx = fso.GetExtensionName(Filename) ' ファイル名から拡張子を抜き出す   If LCase(FileEx) = "txt" Then ' 拡張子を小文字化してから比較    tmpMessage = tmpMessage & Filename & vbNewLine   End If  Next Loop WScript.Echo tmpMessage '-------------------------------------------------------