特定のフォルダ内(C:\Users\naranara19\Downloads)に、
20171028224126_発行済データ.csv
というようなファイルがあります。しかし、このCSVファイルの数字が桁数はかわりませんが、毎回変わります。これをエクセルのマクロでデスクトップに名前を変えて移動したいのですが、
どうすればよいでしょうか?デスクトップには、出力用.csvとして貼り付けたいです。
(なお、デスクトップにはすでに出力用.csvがあり、それを上書きする形です)
どうかよろしくお願いいたします。
(恐れ入りますが、マクロを書いてくださった方のみポイント対象でございます)
サンプルコードです。CopyCsvFileで呼び出します。
元フォルダに該当のファイルが複数ある場合は、どのファイルがコピーされるかは不定になります。
例えば、ファイル名の中に入っている数字の部分(日付?)が最新のものをコピーする等も可能ですが、もう少し複雑になります。
Const SourcePath As String = "C:\Users\naranara19\Downloads" Sub CopyCsvFile() Dim fileName As String fileName = Dir(SourcePath & "\*.csv") Do While fileName <> "" If fileName Like "??????????????_発行済データ.csv" Then FileCopy Source:=SourcePath & "\" & fileName, Destination:=GetDesktopPath() & "\出力用.csv" Exit Do End If fileName = Dir() Loop End Sub Function GetDesktopPath() As String Dim wsh As Object Set wsh = CreateObject("WScript.Shell") GetDesktopPath = wsh.SpecialFolders("Desktop") Set wsh = Nothing End Function
ありがとうございました。正しくCSVが検索されておりまして、なぜか今回はしっかりできました。実行すると、しっかりとできました。ありがとうございました。
2017/10/31 07:37:34前回は上の緑色のボタンから実行していたのですが、今回はそれを押すとマクロの選択画面がでてそれをクリックするとできました。他のマクロが干渉していたんでしょうか。素人ですみません。
ご丁寧な対応に深く感謝しております。ありがとうございました。
うまくいったようでよかったです。
2017/11/01 00:40:06緑色のボタンは、右向きの三角形のボタンだと思いますが、マクロの実行ボタンです。
ボタンを押すとカーソル位置にあるマクロを実行しますので、前回はたまたま他のマクロの上にカーソルがあったのでしょう。
なお、カーソルが実行可能なマクロ上にない場合(End Subの後やFunction~End Functionの間など)は、マクロの選択画面が表示されます。
通常はVBA画面は出す必要はありませんので、Excel画面上から[表示]→[マクロ]→[マクロの表示]でマクロの選択画面を出すのが良いと思います。
シート上にボタンを置いてボタンにマクロを割り当てることもできますのでご参考までに。
https://support.office.com/ja-jp/article/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB-%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AB%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B-d58edd7d-cb04-4964-bead-9c72c843a283