教えて!gooグレードポイントがdポイントに!

永遠のVBA初心者です。
かなり昔にNETで教えてもらって、試行錯誤を重ねて何とか目的を達成したのですが、今回このコードをpdfで保存するように修正したいのですが、試行錯誤では歯が立たず・・・

やりたいことは、エクセルの申請書のシートを、指定のフォルダにセル内容をファイル名にpdfで保存したいのです。

実際にはこの後に、セル内容をリストに転記して完了するようなプロシージャーになっています。
よって、下記のコードを修正していていただきたいのですが。




Sub 申請書登録()

Dim NewBookName As String

With ThisWorkbook.Sheets("申請書")
NewBookName = .Range("F25").Value & " " & .Range("E4").Value & " " & .Range("A2").Value & " " & .Range("A1").Value & ".xlsx"
.Copy
ActiveWorkbook.SaveAs Filename:="・・・・1230\・・・室\・・・チーム\申請書" & "\" & NewBookName
.Cells.Copy

Application.Dialogs(xlDialogPrint).Show

教えて!goo グレード

A 回答 (2件)

PDFの出力のフォルダーについては、変更は必要だと思いますが、


Filename:="・・・・1230 のところです。

Sub 申請書登録()
Dim NewBookName As String
With ThisWorkbook.Sheets("申請書")
NewBookName = .Range("F25").Value & " " & .Range("E4").Value & " " & .Range("A2").Value & " " & .Range("A1").Value
Worksheets("申請書").ExportAsFixedFormat Type:=xlTypePDF, Filename:="・・・・1230\・・・室\・・・チーム\申請書" & "\" & NewBookName
End With
End Sub
    • good
    • 0
この回答へのお礼

字数オーバーのため お礼省略。

ご回答を現在のコードにコピペしてみたら、
「End Withに対する、End Subがありません」
とエラーが出たので、ご回答のコードから「End With」を抜いたらうまくpdfで保存された(ご回答のプロシージャーは完璧)に動いたのですが、そのあとの別シートのリストへのセル内容の転記(下記のコード)がエラーになります。

折角ご回答いただいたのであと少しお助けください。


<質問のコードの続き>

With Workbooks(NewBookName).Sheets("申請書")
.Unprotect
.Cells.Copy
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
.Range("A1").Select
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Workbooks(NewBookName).Save
Workbooks(NewBookName).Close

End With
For i = 5 To Sheets("申請書リスト").Range("A1048576").End(xlUp).Row + 1
If Sheets("申請書リスト").Range("B" & i).Value = "" Then
With Sheets("申請書リスト")
.Range("A" & i).Value = Sheets("申請書").Range("E3").Value
・・・・・・・
.Range("F" & i).Value = Sheets("申請書").Range("F25").Value

' .Range("B" & i).Value = Date

End With



End If

End Sub

お礼日時:2022/06/27 11:38

ExportAsFixedFormat()を利用すればいいです。


https://tech-paclab.com/exportpdf/

Excel2007以降から利用可能です。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。

但し残念ながら、このコードを現在使用しているコードに適用するだけの実力が無いのが悲しい現実です。

ご回答で、ファイル名を指定した複数のセル内容で保存するように変更することは無理な実力です。

お礼日時:2022/06/27 10:58

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング