ファイル名の右側を変更したい
ファイル名:「1001日別売上」の左側へ「2022」を追加し、「20221001日別売上」へ変更するのに下記コードを使っています。今回の質問としてファイル名:「20221001日別売上」の右側へ「_確認済」を追加し、「20221001日別売上_確認済」としたいのですが右側を変更するためのコード変更部分が解りません。よろしくお願いいたします。
Sub A2_指定文字追加()
Dim FileP As String
'フォルダ選択のダイアログボックスを開く
Application.FileDialog(msoFileDialogFolderPicker).Show
'選択したフォルダのパス名を取得
FileP = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
MsgBox "追加文字をコピーしてください"
'ファイル名の変換
Dim FileA As String
'選んだフォルダの拡張子xlsを含むファイルを返す
FileA = Dir(FileP & "\*.xls*")
'ファイル名の変換
Dim Str1 As String, Str2 As String
'変換前の対象文字列
Str1 = InputBox("追加文字を貼り付けてください", "ファイル名変更", "") '←任意で変える部分
'変換後の文字列
Str2 = "" '←任意で変える部分
'フォルダ内のファイルがなくなるまで繰り返す
Do While FileA <> ""
'各ファイルのStr1部分をStr2に変換する
Name (FileP & "\" & FileA) As (FileP & "\" & Str1 & FileA)
'Dirの指定をなくす
FileA = Dir()
Loop
End Sub
No.5ベストアンサー
- 回答日時:
No3です。
>補足になりますが「_確認済」は固定ではなくポップアップ画面で指定して変更できるようなことができませんでしょうか。
Sub A2_指定文字追加()を以下のように変えてください。
Public Function add_str は変えません。
str2を使用するようにしました。
Sub A2_指定文字追加()
Dim FileP As String
'フォルダ選択のダイアログボックスを開く
Application.FileDialog(msoFileDialogFolderPicker).Show
'選択したフォルダのパス名を取得
FileP = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
MsgBox "追加文字をコピーしてください"
'ファイル名の変換
Dim FileA As String
'選んだフォルダの拡張子xlsを含むファイルを返す
FileA = Dir(FileP & "\*.xls*")
'ファイル名の変換
Dim Str1 As String, Str2 As String
'変換前の対象文字列
Str1 = InputBox("追加文字を貼り付けてください", "ファイル名変更", "") '←任意で変える部分
'変換後の文字列
Str2 = InputBox("右側の追加文字を貼り付けてください", "ファイル名右側変更", "") '←任意で変える部分
'フォルダ内のファイルがなくなるまで繰り返す
Do While FileA <> ""
'各ファイルのStr1部分をStr2に変換する
Dim newname As String
'FileAに_確認済を付加する
newname = add_str(FileA, Str2)
Name (FileP & "\" & FileA) As (FileP & "\" & Str1 & newname)
'Dirの指定をなくす
FileA = Dir()
Loop
End Sub
No.6
- 回答日時:
別回答の方では対策が取られていたらダブって申し訳ないです。
【VBA】InputBox関数でキャンセルされた時の判定方法
https://yaromai.jp/inputbox_cancel/
InputBoxで必ず入力を行なうのであれば関係ないですが、もし違う場合に参考になりそうなサイトをあげておきます。
No.4
- 回答日時:
No.1*2です。
他の回答は見られないので補足のコードはわかりませんが、
>ポップアップ画面で指定して変更できるようなことができませんでしょうか。
変数:str1と同じようにstr2を作ってみるとかではないかな。
ベテラン回答者様には及ばないアドバイスで申し訳ないです。
Excelなしでテキストエディタだけで作成できる程のスキルがないもので。
No.3
- 回答日時:
以下のようにしてください。
Nameを実行する前にadd_strを呼び出し、FileAに_確認済を付加した名前を取得します。取得した名前をNameで変更します。
Sub A2_指定文字追加()
Dim FileP As String
'フォルダ選択のダイアログボックスを開く
Application.FileDialog(msoFileDialogFolderPicker).Show
'選択したフォルダのパス名を取得
FileP = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
MsgBox "追加文字をコピーしてください"
'ファイル名の変換
Dim FileA As String
'選んだフォルダの拡張子xlsを含むファイルを返す
FileA = Dir(FileP & "\*.xls*")
'ファイル名の変換
Dim Str1 As String, Str2 As String
'変換前の対象文字列
Str1 = InputBox("追加文字を貼り付けてください", "ファイル名変更", "") '←任意で変える部分
'変換後の文字列
Str2 = "" '←任意で変える部分
'フォルダ内のファイルがなくなるまで繰り返す
Do While FileA <> ""
'各ファイルのStr1部分をStr2に変換する
Dim newname As String
'FileAに_確認済を付加する
newname = add_str(FileA, "_確認済")
Name (FileP & "\" & FileA) As (FileP & "\" & Str1 & newname)
'Dirの指定をなくす
FileA = Dir()
Loop
End Sub
Public Function add_str(ByVal fname As String, ByVal astr As String) As String
Dim pos As Variant
Dim xlen As Long
add_str = fname
pos = InStrRev(fname, ".")
If pos < 1 Then Exit Function
xlen = Len(fname) - pos + 1
add_str = Mid(fname, 1, pos - 1) & astr & Right(fname, xlen)
End Function
No.1
- 回答日時:
よくわかりませんが既に変更済みなら
Name (FileP & "\" & FileA) As (FileP & "\" FileA & "_確認済")
とか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CString から LPCTSTRの型に変換
-
Excel VBAでPDFファイルをMicro...
-
文字コードの%E3%80%とは何です...
-
Encode.pmで「髙」(ハシゴ高)...
-
Delphiの型変換
-
LINUX上でシリアル通信(C++)
-
ローマ字からカナに変換する方...
-
Visual Studio プロパティペー...
-
VBScript文字列をSJISからUTF8...
-
シェルスクリプトで文字列置換
-
これはなんの文字コードでしょうか
-
テキストをhtml変換するには
-
SQLのデータで半角カナを全角に...
-
DAC ICについて
-
【PHP】全角記号を半角記号...
-
算用数字(半角)から漢数字へ...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
「何とかで始まり、何とかで終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでPDFファイルをMicro...
-
文字コードの%E3%80%とは何です...
-
CString から LPCTSTRの型に変換
-
VB6にも「ToString」ってあり...
-
gccでiconvを使った文字コード...
-
VBScript文字列をSJISからUTF8...
-
SJIS->UTF8->SJISコード変換に...
-
ローマ字からカナに変換する方...
-
シャープ(#)の受け渡し
-
文字列を quoted-printable 文...
-
Encode.pmで「髙」(ハシゴ高)...
-
LINUX上でシリアル通信(C++)
-
ローマ数字の変換をしたいのですが
-
Kシェルでの文字型→数値型変換
-
テキストをhtml変換するには
-
ひらがなから全角カタカナへの...
-
Delphiの型変換
-
SQLのデータで半角カナを全角に...
-
CString型からdouble型への変換
-
五十音の並べ替えsortを教えて...
おすすめ情報
コードのご提示ありがとうございます。
補足になりますが「_確認済」は固定ではなくポップアップ画面で指定して変更できるようなことができませんでしょうか。よろしくお願いします。