
No.3ベストアンサー
- 回答日時:
またまた#1です。
(^o^)丿同名ファイルがあるときは xxxx_01.jpg の形式の連番を付加して別名で保存する
のを考えてみました。(連番は Max10 まで)
ファイル名とコピー先のフォルダパス名にアンダースコア( _ )が付いていない
ことが条件です。
Sub Test2()
Dim i, OldFile, OldName, FileExt, NewFile, NewName, n, Pos
i = 6
Do While Cells(i, 2) <> ""
On Error Resume Next
MkDir Cells(6, 4).Value 'コピー先に指定したフォルダがない場合は作成。
OldFile = Cells(i, 2)
OldName = Right(OldFile, Len(OldFile) - InStrRev(Cells(i, 2), "\") + 1)
OldName = Left(OldName, InStrRev(OldName, ".") - 1)
FileExt = Right(Cells(i, 2), Len(Cells(i, 2)) - InStrRev(Cells(i, 2), ".") + 1)
NewFile = Cells(6, 4) & OldName & FileExt
NewName = Left(NewFile, InStrRev(NewFile, ".") - 1)
If Dir(NewFile) <> "" Then
For n = 1 To 10
Pos = InStrRev(NewName, "_")
If Pos = 0 Then Pos = Len(NewName)
NewFile = Left(NewName, Pos) & "_" & Format(n, "00") & FileExt
If Dir(NewFile) = "" Then Exit For
Next
End If
FileCopy OldFile, NewFile
'Kill OldFile
i = i + 1
Loop
End Sub
No.2
- 回答日時:
#1です。
FileCopyを使った場合は、常に上書きになります。
同名ファイルがあった場合、コピー先の既存ファイルに連番をつける
ことは、私にはむずかしかったものですから‥‥。 (^^ゞ
なお、On Error Resume Next は、B列セルに記述されたファイルが
なかった場合に、無視して次の行を処理させるためにつけました。
No.1
- 回答日時:
稚拙ですが――
Sub Test()
Dim i, OldFile, NewFile
i = 6
Do While Cells(i, 2) <> ""
On Error Resume Next
OldFile = Cells(i, 2).Value
NewFile = Cells(6, 4).Value & _
Right(OldFile, Len(OldFile) - InStrRev(OldFile, "\") + 1)
i = i + 1
FileCopy OldFile, NewFile
' Kill OldFile '元ファイルは削除したい場合はこの行を生かします。
Loop
End Sub
misatoannaさんありがとうございました。ばっちりでした。
ひとつ質問させていただきたいのですが、
フォルダにファイルをコピーして格納します。
再度同じパスをコピーして格納すると、予想では「すでに同じ名前のファイルがあります・・・」というような表示が現れると思ったのですが、再度同じファイルをフォルダに入れてもそのような表示がありませんでした。On Error Resume Nextかな?と思ってコメントアウトした
のですが、それは関係ないようでした。こうゆうものでしたでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
マインクラフトPCをプレイしよ...
-
xcopyでのバッチコピー方法でコ...
-
「ファイルが見つかりません D...
-
Vba初心者です。下記のコード助...
-
frxファイルの役目
-
ファイルサーバ上のファイルが...
-
エクセルのハイパーリンクがコ...
-
bat 同名ファイルコピー時にリ...
-
エクセルファイルに「コピー」...
-
Nimdaに感染していたのに...
-
バッチファイルのコピーで
-
ハイフネーションされている英...
-
vbsでファイルやフォルダのコピ...
-
Perl5とMysql
-
FTPとファイルコピーの違いにつ...
-
VB6.0でデバッグ時、文字列の値...
-
MSオフィス2013にMS365が上書き...
-
VBS でファイルをコピーする際...
-
ファイルのコピー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
エクセルのハイパーリンクがコ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
同じファイル名 上書きしないフ...
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイル 別ファイルにリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
DOSコマンドのコピー完了判定
-
FTPとファイルコピーの違いにつ...
-
vbsでファイルやフォルダのコピ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
vbsでExcelのシートをコピーす...
-
共有フォルダへのフォルダ作成...
おすすめ情報