〇やりたいこと
1枚のブックにシートが10枚あるとします。
それぞれ、シート名の先頭3文字には、100 or 200 or 300 の いずれかが 書かれております。
そのシート名の先頭3文字を元にシートを仕分けて、それぞれPDFにしたいです。
(例:100が先頭3文字ついているシートだけを1つのPDFファイルにし、ファイル名は 100.pdf としたい。 200、300も同様。この3桁の数字は、取引先のコードを想定しております)
〇自分で試したこと
配列変数を3つ用意(ary100,ary200,ary300)する。初期の要素数は、1とする(1 to 1 の1始まり)。
そのシート名の先頭3文字を判定して(left関数を使用)、該当する配列に入れる。
入れたら、配列の要素数をredim preserve +1 足していく。
一通り終わったら、それぞれ、ary100().Exportasfixedformat でPDF化。
上記ではできませんでした。
どなたか、アドバイスをお願いします。
コード Sub macro() Dim ary100() As String Dim ary200() As String Dim ary300() As String ReDim ary100(1 To 1) As String ReDim ary200(1 To 1) As String ReDim ary300(1 To 1) As String Dim ws As Worksheet For Each ws In Sheets Select Case Left(ws.Name, 3) Case 100 ary100(UBound(ary100)) = ws.Name ReDim Preserve ary100(1 To UBound(ary100) + 1) Case 200 ary200(UBound(ary200)) = ws.Name ReDim Preserve ary200(1 To UBound(ary200) + 1) Case 300 ary300(UBound(ary300)) = ws.Name ReDim Preserve ary300(1 To UBound(ary300) + 1) End Select Next Worksheets(ary100).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\awga1\Documents\PDF保管\100.pdf" Worksheets(ary200).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\awga1\Documents\PDF保管\200.pdf" Worksheets(ary300).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\awga1\Documents\PDF保管\300.pdf" End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/10 00:35
2021/06/10 02:14 編集