いつもお世話になっております。
エクセル内に「印刷シート」「アカウントデータ」の2つがあり、「アカウントデータ」シートの「pdfを作成」ボタンを押すと「印刷シート」内の変数を替えながら1,2…という名前のsheetを作成し、それをまとえてpdf化するという流れを考えております。
ひとまず実験的にアカウントデータに2つのデータを入れ、1,2という名前のシートを作成その2つをまとめたpdfが出力されるようにしようと思っているのですが、うまくいきません。
「ActiveWorkbook.PrintPreview」でプレビューを見た場合には2つのシートが選択されているのですが、ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileNameでpdfを出力するとすべてのシートがpdf化してしまう状況です。
1,2という名前のシートは正しく作成されています。
下記がコードとなっております。
ご教示いただけますと幸いです。
よろしくお願いいたします。
VBA
1Sub 結合pdf化() 2 Dim LastRow As Long 3 Dim i As Long 4 Dim myNo As Long 5 Dim SaveDir As String 6 Dim WSH As Object 7 Dim FSO As Object 8 9 Dim DesktopPath As String 10 11 12 13 If vbNo = MsgBox("pdfを作成しますがよろしいですか?", vbYesNo) Then Exit Sub 14 15 Set WSH = CreateObject("Wscript.Shell") 16 Set FSO = CreateObject("Scripting.FileSystemObject") 17 DesktopPath = WSH.SpecialFolders("Desktop") 18 SaveDir = DesktopPath & "\新規フォルダ\" 19 Set FSO = Nothing 20 Set WSH = Nothing 21 22 23 ' デスクトップにフォルダがなければ作成する 24 If Dir(SaveDir, vbDirectory) = "" Then 25 MkDir SaveDir 26 End If 27 28 With Worksheets("アカウントデータ") 29 LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 30 31 For i = 1 To LastRow 32 33 myNo = .Range("A" & i).Value 34 35 Worksheets("印刷シート").Range("J4").Value = myNo 36 Worksheets("印刷シート").Copy After:=Worksheets(Worksheets.Count) 37 ActiveSheet.Name = i 38 39 Next i 40 End With 41 42 Dim fileName As String 43 fileName = SaveDir & "新規フォルダ" & ".pdf" 44 45 Dim ws As Worksheet 46 For Each ws In Worksheets(Array("1", "2")) 47 48 With ws.PageSetup 49 50 .Zoom = False 51 .FitToPagesWide = 1 52 .FitToPagesTall = 1 53 .PrintArea = "A1:F30" 54 .CenterHorizontally = True 55 .TopMargin = Application.CentimetersToPoints(1) 56 .BottomMargin = Application.CentimetersToPoints(1) 57 58 End With 59 60 Next ws 61 62 Worksheets(Array("1", "2")).Select 63 'ActiveWorkbook.PrintPreview 64 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName, 65 IgnorePrintAreas:=False 66 67 MsgBox "pdf作成が終わりました" 68 69End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 04:30
2019/02/26 05:21