こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで所定のフォルダーにPDFファイルで保存

エクセル、ワードでほぼ毎日送付する報告書をpdfファイルで送ることになりました。
ファイル名が指定の数字10桁(LOT No)で、これはエクセル表に入力してあるのでそのセルから引っ張ってきたいのです。⇒オペミス防止
少し調べてみたら非常に簡単な下記の3行で出来ることが分かったのですが、ついでにpdfファイル(D10のセル内容+.pdf)で保存画面が出て来れば非常に便利。

更なる欲としては、フォルダーまで指定できれば、マクロボタン化しておけば非常に便利なのですが。

1つ1つのマクロはここで絶大なるHELPを受けて出来ているのですが情けないことに全く応用が利きません。

Sub File()
Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("D10")
End Sub

尚、このコードはSheet1にしか適用されないようなので任意のActiveページで使いたいのですが。

投稿日時 - 2018-11-21 16:15:01

QNo.9560245

困ってます

質問者が選んだベストアンサー

こんな感じ。
Sub Macro1()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\f272\Desktop\" & Range("D10") & ".pdf"
End Sub
フォルダー指定は勝手にデスクトップにしています。適当に変えてください。
ActiveSheetを保存します。保存画面は出てきません。勝手に保存します。もし同じ名前のファイルがあっても書き換えます。

投稿日時 - 2018-11-21 16:40:40

補足

f272さん
毎度お世話になります。

さて少し手が空いたので早速に試してみました。
ファイル名をセルの数値だけにする必要があったので以前教わったコードと比較してパスの最後に¥を入れてみたらうまくいきました。

こんなことが4行で出来るとは!!!
上書きは同じLOTで2つの報告書は存在しない(しては困る)ので問題ないです。(懸念事項のご配慮に感心)

投稿日時 - 2018-11-22 11:56:04

お礼

ありがとうございました。
早々に解決できました。

投稿日時 - 2018-11-22 12:18:10

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>フォルダーまで指定できれば、マクロボタン化しておけば
一応、保存場所はデスクトップにしてみました。
Sub Test()
  Dim myPath As String, fName As String
  'デスクトップのパスを取得
  myPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
  'アクティブシートのD10セルからファイル名を取得
  fName = ActiveSheet.Range("D10").Value
  Application.Dialogs(xlDialogSaveAs).Show Arg1:=myPath & fName, Arg2:=57
End Sub

投稿日時 - 2018-11-21 16:43:38

補足

早々のご回答ありがとうございました。
動作確認し、一発で希望通り動きました。(当方には珍しい)

今回の作業は上書きではなく、毎回保存メニューから、保存場所を探して、種類のpdfを探して、10桁の数字を入力して・・・がバカバカしく思えてきます。
(単に当方が無知のせいですが)

投稿日時 - 2018-11-22 12:05:01

お礼

早々にご回答いただきありがとうございました。
いつも助けていただいて感謝しております。
保存画面が出たほうが良い場合も多いので、選択肢が増えました。
このコードも汎用に使わせていただきます。

今回は申し訳ありませんが同じく一発で解決できた一番最初にご回答いただいた#No1さんをBSに支えていただきますのでご了承下さい。

投稿日時 - 2018-11-22 12:15:11

あなたにオススメの質問