52本目 複数シートの一括印刷

VBA100本ノック

VBA100本ノック 52本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ


問題

#VBA100本ノック52本目
シート名に「印刷」という文字を含むシートを全て印刷したい。
ただし途中で他の人の印刷が紛れ込まないように、印刷キューには1ジョブで登録したい。
VBAは確認のためプレビューで記述、つまり、1回のプレビューで複数シートを出力してください。
※ブックは任意

解答

Sub シートを印刷プレビュー()

    Dim ws As Worksheet
    Set ws = Sheets("Sheet1")
    
    ws.PrintPreview  '印刷プレビュー
    'ws.PrintOut      印刷

End Sub

Sub シート名を配列に格納()

    Dim ary() As String
    Dim ws As Worksheet
    Dim i As Long: i = 0
    
    For Each ws In ThisWorkbook.Sheets
        If ws.Name Like "*印刷*" Then
            If ws.Visible = xlSheetVisible Then
                ReDim Preserve ary(i)
                ary(i) = ws.Name
                i = i + 1
            End If
        End If
    Next
    
    Sheets(ary).PrintPreview

End Sub
新人君
新人君

簡単そうに見えて
結構難しいんですかね!

ブチョ
ブチョ

俺から見たら
簡単そうに見えて
超簡単だけどな!

新人君
新人君

ほんまかいな……

コメント

タイトルとURLをコピーしました