下記マクロを実行すると
ダイアログが開き、マウスで指定したPDFファイルを指定シートの指定セル値に設定しているファイル名に変更できます。
このマクロを下記の様に変更できる方法を教えてください。
マクロ設定ブックと同じフォルダ内に
PDFファイル名が「A4」「A3」(固定のファイル名)となっているファイルがあります、
ダイアログを開かずに
PDFファイル名が「A4」のファイル名をシート「昇降機質疑」セル値「V3」に設定しているファイル名に変更
PDFファイル名が「A3」のファイル名をシート「昇降機質疑」セル値「V9」に設定しているファイル名に変更
できる方法を親切にコード迄教えてください。
現状のマクロ
Sub 交付用名前変更A4()
Dim TargetFile As String
Dim fPath As String, fname As String
Dim newfName As String
newfName = ThisWorkbook.Sheets("昇降機質疑").Range("V3").Value & ".pdf"
newfName = NGNarrowToWide(newfName)
''メッセージを表示し、実施確認する。
If MsgBox(newfName & vbCrLf & vbCrLf & "(交付用_A4)を作成しますか。", 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.5ベストアンサー
- 回答日時:
No.4
- 回答日時:
補足ありがとうございました。
念のため確認ですが、
>「A4.pdf」→V3の設定文字で例えば「北海太郎(A4交付用).pdf
>「A3.pdf」→V9の設定文字で例えば「北海太郎(A3交付用).pdf
>のようにお願いします。
この意味は、
A4のセルは拡張子を含めて指定される。例として「北海太郎(A4交付用).pdf」
A3のセルは拡張子を含めて指定される。例として「北海太郎(A3交付用).pdf」
と理解しましたが、間違いないでしょうか。
又、V3,V9は拡張子を含めないで指定されるという理解で間違いないでしょうか。
No.3
- 回答日時:
No2です。
追加の不明点です。3.確認メッセージはどのようにしますか。
①表示しない。
②A4→V3、A3→V9を表示して、キャンセルなら実行しない。
③その他
等が考えられます。
③の場合は、具体的な内容を提示してください。
No.2
- 回答日時:
仕様不明点です。
1.A3,A4,V9のファイル名は、拡張子(.pdf)を除いて指定されるのでしょうか。それとも、含めて指定されるのでしょうか。
(V3については、ソースコードをみると、拡張子を指定しないことが判明しています。)
2.A3,A4,V3,V9のファイル名の何れかが指定されない場合(空白の場合)は、エラーにするのでしょうか。
No.1
- 回答日時:
> ダイアログを開かずに
まず、何をトリガーにそのマクロを動作させるかを決めましょう。
でようは特定のフォルダーにある特定の(名前の)ファイルのファイル名を、Excelの特定のシート、特定のセルにセットされた値に変更したい・・・ってことですよね?
であれば知る必要があるのはVBAでのファイル名の変更の仕方でしょう。
それはGoogleなどで「VBA ファイル名 変更」といった簡単なキーワードで検索すれば該当機能をExcelマクロで実現する方法を解説したWebページがたくさんヒットするかと思います。
で、Name関数イッパツなのでは?
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
修正依頼:【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
-
4
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
5
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
6
VBAのエラー表示の対処法について
Visual Basic(VBA)
-
7
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
8
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
9
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
10
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
11
ExcelVBA修正のお願い
Visual Basic(VBA)
-
12
Vba ファイル書き込み時に書き込みエラーを回避する方法を教えてください
Visual Basic(VBA)
-
13
Excelの数式について教えてください。
Visual Basic(VBA)
-
14
VBA 同じフォルダ内のすべてのファイルに同じセルをペーストしたい
Visual Basic(VBA)
-
15
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
Visual Basic(VBA)
-
16
VBAのループ処理について教えてください
Visual Basic(VBA)
-
17
VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
18
不要項目の行削除方法について
Visual Basic(VBA)
-
19
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
20
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで在庫の組み換え処...
-
【ExcelVBA】5万行以上のデー...
-
VBAでエクセルのテキストデータ...
-
VBAから書き込んだ条件付き初期...
-
VB.net 文字列から日付型へ変更...
-
修正依頼:【VBA】 結合セルに...
-
WindowsのOutlook を VBA から...
-
ExcelのVBAコードについて教え...
-
【VBA】 結合セルに複数画像と...
-
ExcelのVBAコードについて教え...
-
【マクロ】オートフィルターに...
-
[Excel VBA]特定の条件で文字を...
-
Excelのマクロについて教えてく...
-
VBAでセルの書式を変えずに文字...
-
Excel 範囲指定スクショについ...
-
VBA 最終行の取得がうまくいか...
-
Excel VBAについて。こんな動作...
-
不要項目の行削除方法について
-
Excelのマクロについて教えてく...
-
VBA 同じフォルダ内のすべての...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAについて教えて下さい
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBA Application.Matchについて...
-
Excelのマクロについて教えてく...
-
Excel VBAについて。こんな動作...
-
Excelの数式について教えてくだ...
-
ExcelのVBAコードについて教え...
-
VBA 同じフォルダ内のすべての...
-
不要項目の行削除方法について
-
Vba 型が一致しません(エラー1...
-
【マクロ】オートフィルターに...
-
【VBA】 結合セルに複数画像と...
-
VBAで特定の文字が入った行をコ...
-
ExcelのVBAコードについて教え...
-
VBAでセルの書式を変えずに文字...
-
VBAのエラー表示の対処法について
-
Excelのマクロについて教えてく...
-
Excel マクロについて詳しい方...
おすすめ情報
回答ありがとうございます。
色々と使用不明で申し訳ありません。
仕様不明点です。
1.A3,A4,V9のファイル名は、拡張子(.pdf)を除いて指定されるのでしょうか。それとも、含めて指定されるのでしょうか。
A:「A4.pdf」「A3.pdf」を拡張子を含めて指定してください。
又、「A4.pdf」→V3の設定文字で例えば「北海太郎(A4交付用).pdf
「A3.pdf」→V9の設定文字で例えば「北海太郎(A3交付用).pdf
のようにお願いします。
2.A3,A4,V3,V9のファイル名の何れかが指定されない場合(空白の場合)は、エラーにするのでしょうか。
A:エラーメッセージ「該当ファイルがありません」等を表示して欲しいです。
3.確認メッセージはどのようにしますか。
③その他
A:「A4・A3の交付用を作成しますか?」で
YESの場合に実行
キャンセルの場合に非実行でお願いいたします。
何度も申し訳ありません。
宜しくお願い致します。
ご連絡ありがとうございます。
はい、おっしゃる通りです。
お手数をお掛け致しますが、何卒、宜しくお願い致します。