• ベストアンサー

マクロ【所定フォルダで条件検索コピー】

いつも大変御世話になります。 【D:\test】フォルダ内に、1つのエクセルファイル(Excel2003)があります。 ・エクセルファイル名は【test.xls】。 ・シート【起動シート】のみがあります。 今回悩んでいるのはシート名【起動シート】内にあるマクロボタンに入れるマクロです。 理想の処理は以下のようになります。 (1)【D:\sample】フォルダにあるいくつかのテキストファイルでサイズがあるテキストファイルのみを 【E:\sample】フォルダに同名でコピーする ネット上に情報があるかと思い調べましたが、なかなかそういった処理にはであえませんでした。 何か簡単なサンプルコードをご教授願いますでしょうか? 余りにも初歩的な質問で申し訳ありませんが、宜しくお願い致します。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Sub try()     Dim FSO, f, D_dir As String, E_dir As String     Set FSO = CreateObject("Scripting.FileSystemObject")     D_dir = "D:\sample\"     E_dir = "E:\sample\"          For Each f In FSO.GetFolder(D_dir).Files        If LCase(FSO.GetExtensionName(f.Name)) = "txt" And _           FSO.GetFile(D_dir & f.Name).Size > 0 Then           FSO.GetFile(D_dir & f.Name).Copy E_dir & f.Name         End If     Next f     Set FSO = Nothing End Sub こんな感じでしょうか。。。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.1&2です。 >>フォルダにあるいくつかのテキストファイルでサイズがあるテキストファイル >↑これはサイズのないファイルを検索し、そのテキストファイルだけを ほかのフォルダへ名前変更なしにコピーするということです。 これは0KBのファイルをコピーするのか、0KBではないファイルをコピーするのか。。。? 取り敢えずANo.2は後者となってます。

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

ファイルのサイズを返します。 http://www.officetanaka.net/excel/vba/filesystemobject/file.htm#Size 【ファイルをコピーします。】も。 こう言ったことのことでしょうか? >フォルダにあるいくつかのテキストファイルでサイズがあるテキストファイル ここの理解を間違えていたらごめんなさい。。。?

beckfloyd
質問者

補足

お返事ありがとうございます。 >フォルダにあるいくつかのテキストファイルでサイズがあるテキストファイル ↑これはサイズのないファイルを検索し、そのテキストファイルだけを ほかのフォルダへ名前変更なしにコピーするということです。 わかりにくくて申し訳ございません。

すると、全ての回答が全文表示されます。

関連するQ&A