事務作業をこなす上でエクセルはとても便利です、特に、一つの案件に対してファイルを複数作るのではなく、ひとつのブック内で入力シートと出力シートに分けることで生産性がグンとあがります。
しかし、シートを作りすぎると印刷する際、
「シートの選択」
↓
「部数の設定」
上の作業を行います、2~3シートならまだしも5シート以上あると一気にめんどくさくなりますし、効率的ではありません。
このような状態だと、印刷したいシート名を探すだけでも手間です。
そこで今回は簡単にわかりやすく印刷できるマクロを作ります。
●下準備
まず、「入力」シートに印刷したいシート名とその枚数を入れられる欄を作ります。
特に、シート名は印刷するかどうかの判定に使いますので正確にお願いします。
●全体像
Sub insatu() ‘印刷したいシートの部数を指定して印刷
Dim i
Dim a As String
i = 2
Do
Worksheets(“入力”).Activate
If Cells(i, 1).Value = “” Then
Exit Do
End If
If Cells(i, 2).Value > 0 Then
a = Cells(i, 1)
Sheets(a).PrintOut Copies:=Cells(i, 2).Value
End If
i = i + 1
Loop
End Sub
●解説1
Sub insatu() ‘印刷したいシートの部数を指定して印刷
Dim i
Dim a As String ‘aにシートの名前を入れる
i = 2
ここまでで関数を定義します、aはシート名。iは今回、シート名が入っているかの判定をする行が2行目なので2にしています。
●解説2
Do
Worksheets(“入力”).Activate
If Cells(i, 1).Value = “” Then
Exit Do
End If
まず「入力」のシートを表に出します、そこのCells(i, 1).Value、つまりシート名が入っていれば繰り返していきます。
●解説3
If Cells(i, 2).Value > 0 Then
a = Cells(i, 1)
Sheets(a).PrintOut Copies:=Cells(i, 2).Value
End If
「枚数」が0より大きければ印刷に移ります。
a = Cells(i, 1) で「入力」の印刷したいシートに入っているシート名をaに格納します。
次の行で実際の印刷操作と枚数が決まります。
●解説4
i = i + 1
Loop
End Sub
「印刷したいシート」が空になるまで繰り返します。
●まとめ
これを使うと操作が早くなるだけでなく、「あれ?どこまで印刷したっけ?」と迷うこともなくなるのでとても便利です。
あくまで独学なので、もっと簡単でいい方法があればぜひ教えてください。