Excel VBA で複数のworksheetを一つのPDFに変更したいのだが、loop 機能を使って、最初のworksheetだけを飛ばしたい。
こちらが私のコードです。
VBA
1 2Sub Sonpo2020toPDF() 3 4Dim newfilename As String 5Dim icount as Integer 6 7pathname = Range("B6") 8lastmonth = Range("B5") 9newfilename = Range("B14") 10fullfilename = pathname & "\" & Filename 11newfullfilename = pathname & "\" & "DCR001_" & Range("B5").Text & "_M" & ".xlsx" 12newpdfname = pathname & "\" & "DCR001_" & Range("B5").Text & "_M" 13 14Workbooks.Open Filename:=newfullfilename 15 16For icount = 2 To Worksheets.Count 17Next icount 18 19ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 20newpdfname, Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 21IgnorePrintAreas:=False, OpenAfterPublish:=False 22 23ActiveWorkbook.Close SaveChanges:=False 24 25End Sub 26 27 28閉じる ▼
そもそも「PDFの変換」はできているのでしょうか。
ご自身が試したコードをご提示ください。
返信ありがとうございます。PDFの変換はできているのですが、どしてもすべてのワークシートが変換されます。こちらが私のコードです。宜しくお願いします。
Sub Sonpo2020toPDF()
Dim newfilename As String
Dim icount as Integer
pathname = Range("B6")
lastmonth = Range("B5")
newfilename = Range("B14")
fullfilename = pathname & "\" & Filename
newfullfilename = pathname & "\" & "DCR001_" & Range("B5").Text & "_M" & ".xlsx"
newpdfname = pathname & "\" & "DCR001_" & Range("B5").Text & "_M"
Workbooks.Open Filename:=newfullfilename
For icount = 2 To Worksheets.Count
Next icount
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
newpdfname, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close SaveChanges:=False
End Sub
質問は編集できますし、コメント欄ではマークダウンが使えない上に、こちらはデフォルト非表示です。
コードをマークダウンのcode機能によってご提示ください。
For内に何も処理を書いていないのはどういう意図があるのでしょうか?
いえ、ここがどうしてもわからなくて、何を入れればいいのかわからないのです。。。
以下のコードを入れてたのですが、なぜかいつも全てのワークシートがPDFに変換されます。。。
If sh.Visible = xlSheetVisible Then
ReDim Preserve strSheets(icount)
strSheets(icount) = sh.Name
icount = icount + 1
End If
回答3件
あなたの回答
tips
プレビュー