前提・実現したいこと
VBAにて操作を実行し、上書き保存をしようとしております。
操作の内容としては、処理当日の日付を入力してPDFにて保存する
という処理になります。
発生している問題・エラーメッセージ
何度かソースコードを触ったりしたのですが、結果的に上書き保存は
できず、手動でエクセルの保存マークを押しても保存されませんでした。
様々な箇所を確認したところ、本エクセルの拡張子が実行後xlsmからにPDFに
なっていることに気づきました。
色々調べてみたのですが、ソースコードのどの部分で拡張子変更に至ったのかが
不明な状態です。
該当のソースコード
VBA
1 '日付 2 With ActiveSheet 3 .Range("Z6") = Format(Now, "ggg e 年") 4 .Range("AD6") = Month(Date) & "月" 5 .Range("AF6") = Day(Date) & "日" 6 End With 7 8 9 10 'PDF化 11 Set ShellObject = CreateObject("WScript.Shell") 12 Path = ShellObject.SpecialFolders("Desktop") 13 new_name = Range("B5") & ".pdf" 14 ActiveWorkbook.SaveAs Filename:=Path & "\" & new_name 15 OpenAfterPublish = False 16 17 '次回用 18 ActiveSheet.Copy after:=ActiveSheet 19 Range("AB4") = Worksheets.Count 20 ActiveSheet.Name = Range("AB4") 21 22 Application.DisplayAlerts = False 23 ThisWorkbook.Save 24 Application.DisplayAlerts = True
試したこと
OpenAfterPublish をfalseにするなど
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> new_name = Range("B5") & ".pdf"
これはどういう意味があってこうしているんですか?
PDFファイル作成時にセルB5の文字列をファイル名にしようとしているコードになります。
そこが原因なのでしょうか。。。
そのあとにこう書いています。
> ActiveWorkbook.SaveAs Filename:=Path & "\" & new_name
併せて、pdf という拡張子をつけて名前を付けて保存していることになります。
成程・・・
無事やりたいことができました。
ベストアンサーにさせて頂きたいので、できれば解決方法として投稿していただければと思います
何がやりたかったのか私にはわからないので、わかるよう回答して自己解決してください。
回答2件
あなたの回答
tips
プレビュー