
下記のマクロは以前教えて頂いたマクロで、このマクロを実行すると
ダイアログが開き指定したPDFファイルを指定セル値にてファイル名が変更され、
マクロ設定ブックと同じフォルダ内に保存されます。
ファイル名を変更したファイルの保存先をマクロ設定ブックと同じフォルダ内では無く
変更したいファイル名を変更したい「PDFファイル」があるフォルダ内にそのまま指定セル値でのファイル名に変更して保存できる方法を教えてください。
現状のマクロ
Sub 行政回答修正あり()
Dim TargetFile As String
Dim fPath As String, fname As String
Dim newfName As String
newfName = ThisWorkbook.Sheets("Webコメント").Range("V1").Value & ".pdf"
newfName = NGNarrowToWide(newfName)
''メッセージを表示し、実施確認する。
If MsgBox(newfName & vbCrLf & vbCrLf & "行政回答(修正あり)を作成しますか。", vbExclamation + vbOKCancel) <> vbOK Then Exit Sub
' ファイルのパスを指定
fPath = ThisWorkbook.Path
' ダイアログを表示してファイルを選択
TargetFile = Application.GetOpenFilename("PDFファイル ,*.pdf", , "ファイルを選択", , False)
If TargetFile = "False" Then Exit Sub
' ファイル名を変更
If TargetFile = fPath & "\" & newfName Then
MsgBox "同名ファイルを選択しています"
Exit Sub
End If
If Not Dir(fPath & "\" & newfName) <> "" Then
Name TargetFile As fPath & "\" & newfName
Else
Dim rc As Integer
rc = MsgBox("既に存在する名前です" & vbCrLf & "はいを押すと既存ファイルは削除され" & vbCrLf & "リネームファイルに置き換えられます", 52, "置き換え確認")
If rc = vbYes Then
Application.DisplayAlerts = False
Kill fPath & "\" & newfName
Name TargetFile As fPath & "\" & newfName
Application.DisplayAlerts = True
Else
MsgBox "処理を中止しました"
End If
End If
End Sub
Public Function NGNarrowToWide(ByVal stg As String) As String
stg = Replace(Replace(Replace(Replace(stg, "\", "¥"), "/", "/"), ":", ":"), "*", "*")
stg = Replace(Replace(Replace(Replace(stg, "?", "?"), "<", "<"), ">", ">"), "|", "|")
stg = Replace(stg, """", Chr(&H8168))
NGNarrowToWide = stg
End Function
No.2ベストアンサー
- 回答日時:
No1の方のアドバイスに従い、修正してみました。
Public Function NGNarrowToWideは修正していませんので、
Sub 行政回答修正あり()のみを掲載します。
Sub 行政回答修正あり()
Dim TargetFile As String
Dim fPath As String, fname As String
Dim newfName As String
Dim p0 As Long
newfName = ThisWorkbook.Sheets("Webコメント").Range("V1").Value & ".pdf"
newfName = NGNarrowToWide(newfName)
''メッセージを表示し、実施確認する。
If MsgBox(newfName & vbCrLf & vbCrLf & "行政回答(修正あり)を作成しますか。", vbExclamation + vbOKCancel) <> vbOK Then Exit Sub
' ダイアログを表示してファイルを選択
TargetFile = Application.GetOpenFilename("PDFファイル ,*.pdf", , "ファイルを選択", , False)
If TargetFile = "False" Then Exit Sub
' ファイルのパスを取得
p0 = InStrRev(TargetFile, "\")
fPath = Left(TargetFile, p0 - 1)
' ファイル名を変更
If TargetFile = fPath & "\" & newfName Then
MsgBox "同名ファイルを選択しています"
Exit Sub
End If
If Not Dir(fPath & "\" & newfName) <> "" Then
Name TargetFile As fPath & "\" & newfName
Else
Dim rc As Integer
rc = MsgBox("既に存在する名前です" & vbCrLf & "はいを押すと既存ファイルは削除され" & vbCrLf & "リネームファイルに置き換えられます", 52, "置き換え確認")
If rc = vbYes Then
Application.DisplayAlerts = False
Kill fPath & "\" & newfName
Name TargetFile As fPath & "\" & newfName
Application.DisplayAlerts = True
Else
MsgBox "処理を中止しました"
End If
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
エクセルvbaの対象セルに色をつける 例えば a日付 b種類 c値段 dその他 にんじん 50 ぴー
Visual Basic(VBA)
-
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
-
4
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
5
修正依頼:【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
6
不要項目の行削除方法について
Visual Basic(VBA)
-
7
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
8
vbaマクロについて
Visual Basic(VBA)
-
9
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
10
算術演算子「¥」の意味について
Visual Basic(VBA)
-
11
VBAのループ処理について教えてください
Visual Basic(VBA)
-
12
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
13
VBAについて教えて下さい
Visual Basic(VBA)
-
14
VBAのエラー表示の対処法について
Visual Basic(VBA)
-
15
Excel マクロについて詳しい方、ご教示ください。 『行数が毎回変わる元データの、A列に「1」と入
Visual Basic(VBA)
-
16
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
17
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
18
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
19
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
20
エクセルVBAのブックを開く方法 例えば [20241001] [20241002] [202410
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
[VB.net] ボタン(Flat)のEnable...
-
vbsでのwebフォームへの入力制限?
-
複数のExcelファイルをマージす...
-
Vba Array関数について教えてく...
-
改行文字「vbCrLf」とは
-
Vba セルの4辺について罫線が有...
-
ダブルクリックで貼り付けた画...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
Excelのマクロについて教えてく...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBA レジストリの値の読み方に...
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報