Page 174 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼dir関数で2つのファイルを処理したい のっつ 02/10/7(月) 18:11 ┗Re:dir関数で2つのファイルを処理したい こうちゃん 02/10/7(月) 21:38 ┗Re:dir関数で2つのファイルを処理したい のっつ 02/10/7(月) 22:00 ─────────────────────────────────────── ■題名 : dir関数で2つのファイルを処理したい ■名前 : のっつ ■日付 : 02/10/7(月) 18:11 -------------------------------------------------------------------------
こんにちは。ちょっと質問なのですが、今、"text"というフォルダ(この中にはbit_1〜bit_120という名前のファイルが120個入っています)に入っているファイルを開き一部分をコピーして、"excel"というフォルダ(この中には1〜120という名前のファイルが120個入っています)のあるシートに貼り付けたいと思っています。 そこでDir関数を用いて順順にファイルを取得しようと思ったのですが、2つのDir関数を一気に使えないようで、エラーが出てしまいます。 どのように書けばよいのでしょうか。また、Dir関数以外のもののほうがよいのでしょうか?教えてください。 お願いします。。 Sub AllFilesCopy() Dim sFolderName As String Dim sFolderName2 As String Dim sFileName As String Dim sFileName2 As String '対象フォルダの設定 sFolderName = ThisWorkbook.Path & "\text\" sFolderName2 = ThisWorkbook.Path & "\excel\" '"DT"で始まるファイル名を取得 sFileName = Dir$(sFolderName & "bit_*.dat") sFileName2 = Dir$(sFolderName2 & "*.xls") 'ファイル名の列挙が終わるまで実行します Do Until sFileName = "" 'ブックを開きます Workbooks.OpenText sFolderName & sFileName Workbooks.Open sFolderName2 & sFileName2 'ブックに対する処理(サンプル) 'OpenTextFile '次のファイル名を取得 sFileName = Dir$() sFileName2 = Dir$() Loop End Sub |
のっつ さん、こんばんは Dir関数の2系統同時使用はできないので、Dir関数とファイルシステムオブジェクトを併用する例です。 Sub AllFilesCopy() Dim sFolderName As String Dim sFolderName2 As String Dim sFileName As String Dim sFileName2 As String Dim Fso As Object 'ファイルシステムオブジェクト Set Fso = CreateObject("Scripting.FileSystemObject") '対象フォルダの設定 sFolderName = ThisWorkbook.Path & "\text\" sFolderName2 = ThisWorkbook.Path & "\excel\" '"bit_"で始まるファイル名を取得 sFileName = Dir$(sFolderName & "bit_*.dat") 'ファイル名の列挙が終わるまで実行します Do Until sFileName = "" sFileName2 = Mid(sFileName, 5, (InStr(sFileName, ".dat") - 5)) & ".xls" If Fso.FileExists(sFolderName2 & sFileName2) = True Then 'ブックを開きます Workbooks.OpenText sFolderName & sFileName Workbooks.Open sFolderName2 & sFileName2 'ブックに対する処理(サンプル) 'OpenTextFile Else MsgBox sFileName & "に対応するエクセルファイルがありません。" End If '次のファイル名を取得 sFileName = Dir$() Loop Set Fso = Nothing End Sub |
こうちゃんさん、ありがとうございます! できました。 また何かありましたらよろしくお願いします。 |