• 公開日:

エクセルのマクロで条件付き印刷を行う方法

条件付き印刷は特定の条件を満たしたデータを抽出し印刷できるため、効率的な作業を可能にします。

この記事では、エクセルのマクロで条件付き印刷を行う方法をご紹介します。

エクセルのマクロを使えば、簡単に条件付き印刷ができます。

Excelを使った日付選択のマクロを無料でダウンロード!

Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。

開発タブを表示する

開発タブ

マクロで条件付き印刷を行うとき、「開発」タブを使用します。

上記の画像のような「開発」タブが表示されていない場合は、設定をして表示させましょう。

詳細は、以下の記事を参考にしてください。

エクセルの開発タブを表示する方法

条件付き印刷を行うコード

マクロで条件付き印刷を行うコードを下記に記載するので、コピーして使用してください。

下記でご紹介するのは、A列が空白の行は削除し、空白でない行のみを印刷する条件のコードになります。

Sub A列が空白でない行を印刷()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim printRange As Range
    
    ' 印刷する範囲を指定するシートを取得
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' 最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 印刷する範囲を指定(A列の1行目から最終行まで)
  Set printRange = ws.Range("A1:A" & lastRow)
    
    ' 空白でない行を印刷する
 printRange.SpecialCells(xlCellTypeConstants).EntireRow.PrintOut
    
    ' A列のセルが空白ならその行を削除して上に詰める
  For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
  If Cells(i, "A") = "" Then
  Rows(i).Delete Shift:=xlUp
End If
Next
End Sub

詳しい方法は、下記「エクセルのマクロで条件付き印刷を行う方法」セクションでご紹介しています。

A列が空白でない行を印刷する

例えば上記のコードを使用すると、上の画像のA列が空白でない行のみが印刷され、空白の行は削除されます。

また、上記のコードでは印刷設定に関するオプションは指定されていません。

必要に応じて、印刷範囲/印刷枚数/用紙サイズ/印刷方向などの印刷設定を追加できます。

エクセルのマクロで条件付き印刷を行う方法

エクセルのマクロで条件付き印刷を行う設定方法をご説明をします。

Excelファイルをマクロが有効なファイルとして保存します。ファイルタブを選択します。

名前を付けて保存、参照の順に選択します。

「名前を付けて保存」ダイアログボックスが表示されました。①ファイルの保存場所(例:デスクトップ)を選択し、②任意のファイル名(例:顧客名簿)を入力します。③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。

コードを登録します。①開発タブ、Visual Basicの順に選択します。

「Microsoft Visual Basic for Applications」が表示されました。①挿入タブ、標準モジュールの順に選択します。

「標準モジュール」が表示されました。上記「条件付き印刷を行うコード」セクションのコードをコピーし貼り付けます。

ファイルタブ、上書き保存の順に選択します。

VBAの設定が終わったので、編集画面に戻ります。①開発タブ、マクロの順に選択します。

「マクロ」ダイアログボックスが表示されました。①作成したマクロ(例:A列が空白でない行を印刷)、②マクロの保存先で作業中のファイル(例:顧客名簿)の順に選択します。③実行ボタンを押すと印刷が開始されます。

実際に印刷して確認してみましょう。A列が空白でない行のみ印刷されました。