|
olive さん、おはようございます。
>「"" Then」でした。これでIf文でエラーは出なくなりました。
>ループがまだ思い通りにはならないけど・・
ループの何がどう思い通りにならないのかはわかりませんが。
皆さんのヒントを元にちょっと工夫してみました。
Sub test1()
Dim gn1 As Variant
Dim gs1 As Variant, gs2 As String, gs3 As String
Dim r As Long, N As Long, prompt, Titl, def
prompt = "コピー回数は?"
Titl = "質 問?"
def = " 10 "
N = InputBox(prompt, Titl, def)
'ファイル名選択
gn1 = Application.GetOpenFilename
'分岐1 キャンセルしていたらパス
If TypeName(gn1) = "String" Then
gs1 = Application.GetSaveAsFilename
If TypeName(gs1) = "String" Then
gs2 = Dir(gn1)
For r = 1 To N
'拡張子がきっちり3文字で付いているとして
'新しいファイル名は元の名前に連番を付けたもの
gs3 = Left(gs2, Len(gs2) - 4) + _
"_" + Format(r, "000") _
+ Right(gs2, 4)
'コピー
FileCopy gn1, gs3
Next r
'
MsgBox N & "個のファイルを作成しました", vbInformation
Else
MsgBox "キャンセルしました", vbExclamation, "コピー先指定"
End If
Else
MsgBox "キャンセルしました", vbExclamation, "コピー元指定"
End If
End Sub
こんな感じです。
|
|