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

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

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

新人君
ほんまかいな……
コメント