dポイントプレゼントキャンペーン実施中!

何時も御世話になっております。

仕事で使用する為初めてマクロをやろうとネットで調べて下記をコピーして使用と考えて居るのですが、分からないので教えて下さい。

Sub PDF出力()

Dim i As Integer

Dim FileName As String '保存先フォルダパス&ファイル名
Dim FSO As Object

For i = 1 To Worksheets.Count
Sheets(3).Select
Set FSO = CreateObject("Scripting.FileSystemObject")
FileName = ActiveWorkbook.Path & "\" & FSO.GetBaseName(Sheet1.Range("R21")) & "発注書 " & Sheet1.Range("N21") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName, Quality:=xlQualityStandard, _
From:=1, To:=7
ActiveSheet.PrintOut From:=1, To:=7, Preview:=True
Set FSO = Nothing
Next i

End Sub

上記で一応PDFに保存出来るようになって居るのですが、

①Sheet1.Range("R21")ですが、R21にはエクセルの書式設定で日付yyyymmddを入れてあり日付を8/3と入力すると20190803と表示されるのですが、PDFにすると03発注書となります。20190803と表示するには何か方法は有りますでしょうか?

②PDF保存をするとプレビューが表示されるのですが閉じても再度表示(3回表示)されてしまいます。1回のみ表示としたいのですがどの様にしたら宜しいか教えて下さい。

因みにSheet1が、情報入力欄でマクロのボタン配置 Sheet2が発注書シート(Sheet1に入力されたものが反映) Sheet3は社内用メモシート(メモシートはマクロ作成後に追加してます。)

当方始めたばかりで(初心者の前の段階です無謀とは思うのですが・・・・。)大変申し訳御座いませんが宜しくお願い致します。

質問者からの補足コメント

  • ファイルを保存するフォルダは、現状開いた時のフォルダとなります。

      補足日時:2019/08/03 11:28

A 回答 (1件)

以下のようにしてください。


ファイル名は「20190803発注書 xxxx.pdf」のようになりますが(xxxxはN21のセルの内容)、発注書の後に意図的に空白をいれているのですね。
-----------------------------------------
Sub PDF出力()

Dim i As Integer

Dim FileName As String '保存先フォルダパス&ファイル名
Dim FSO As Object

Sheets(3).Select
Set FSO = CreateObject("Scripting.FileSystemObject")
FileName = ActiveWorkbook.Path & "\" & Sheet1.Range("R21").Text & "発注書 " & Sheet1.Range("N21") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName, Quality:=xlQualityStandard, _
From:=1, To:=7
ActiveSheet.PrintOut From:=1, To:=7, Preview:=True
Set FSO = Nothing

End Sub
    • good
    • 0
この回答へのお礼

返信遅くなり申し訳御座いません。
発注書の後に見やすくする為意図的にスペースを入れてます。

まさにこれがやりたかったのです!!

助けて頂いて有りがとう御座います。
今後とも宜しくお願い致します。

お礼日時:2019/08/06 09:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!