プロが教える店舗&オフィスのセキュリティ対策術

入力ボックスが繰り返しポップアップして止まらない。
下記コードでファイル名の変更をしたいのですが、変更前の文字を入力ボックスにするにはどう変えたら良いかおわかりの方教えてください。

Sub ファイル名変換2()
Dim FileP As String
'フォルダ選択のダイアログボックスを開く
Application.FileDialog(msoFileDialogFolderPicker).Show
'選択したフォルダのパス名を取得
FileP = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
'ファイル名の変換
Dim FileA As String
'選んだフォルダの拡張子xlsを含むファイルを返す
FileA = Dir(FileP & "\*.xls*")
'フォルダ内のファイルがなくなるまで繰り返す
Do While FileA <> ""
'ファイル名の変換
Dim Str1 As String, Str2 As String
'変換前の対象文字列

Str1 = InputBox("変更前を入力", "ファイル名変更", "")'←任意で変える部分

'変換後の文字列
Str2 = "" '←任意で変える部分
'各ファイルのStr1部分をStr2に変換する
Name FileP & "\" & FileA As (Replace(FileP & "\" & FileA, Str1, Str2))
'Dirの指定をなくす
FileA = Dir()
Loop
End Sub

A 回答 (1件)

こんにちは


フォルダの.xls*ファイルすべてをリネームする処理だと思いますが
Replace(FileP & "\" & FileA, Str1, Str2)
>変更前の文字を入力ボックスにするにはどう変えたら良いか
なっているように思いますが?
ファイル名すべてをリネームしたいのでしょうか?

一律に文字を変更するのなら、
Str1 = InputBox("変更前を入力", "ファイル名変更", "")'←任意で変える部分  と 変換後の文字列
Str2 = "" '←任意で変える部分 を Do While FileA <> ""の前にすれば良いと思います。

気になるのは、ダイアログ、InputBox でのキャンセル処理 
キャンセル処理の仕方を聞きたいのかな?
    • good
    • 0
この回答へのお礼

ありがとうございます♪できました。

お礼日時:2022/09/08 12:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!