当たり前ですがエクセルを使う上で、セルに数式などが入っていて計算させていますが、#DIV/0!や#N/Aなどのエラー値がそのまま印刷されてしまい見苦しい思いをしたことありませんか?
印刷する時だけ、このエラー値を自動的に空白にしたりダッシュ(-)に置き換えてしまいましょう。
印刷ページ設定内の標準機能
意外と知られていないのですが、エクセルの印刷ページ設定を開くと「シート」があり、この中に「セルのエラー」という項目があります。
ここのプルダウンから空白やダッシュ(-)に変更することができます。

意外と知られていないのですが、簡単にできますよね。
PageSetupを使ってVBA設定
ここでは、ユーザーフォームに配置したコマンドボタンにVBAコードを書き、表示中のシートのページ設定(ActiveSheet)で記載しています。
シートを指定する場合はActiveSheetをWorkSheets(“シート名”)に変えるだけです。
セルのエラー印刷表示設定
Private Sub CommandButton1_Click()
With ActiveSheet
.PageSetup.PrintErrors = xlPrintErrorsBlank
.PrintOut
End With
End Sub
VBA解説
- コマンドボタン1がクリックされたら
- 表示中のシートのページ設定をする
- エラー値セルは空白にする
- 印刷する
- Withステートメント終了
- マクロ記録終了
これで、エラー値の時のセルがあったら自動的に空白セルにして印刷してくれ、空白の代わりにダッシュ(-)や元に戻すVBAコード、さらになぜかエラー表示(#N/A)に表示する4種類が用意されています。
値 | VBAコード | 内容 |
0 | xlPrintErrorsDisplayd | エラー値を元に戻す(置換無し) |
1 | xlPrintErrorsBlank | エラー値を空白にして印刷 |
2 | xlPrintErrorsDash | エラー値をダッシュ(-)にして印刷 |
3 | xlPrintErrorsNA | エラー値を(#N/A)にして印刷 |
印刷関連VBA
- エクセルからエクセルへ差し込み印刷
- 印刷プレビュー
- 枚数指定して印刷実行
- セル番地の値を取得して開始・終了ページ設定
- プリンター選択・設定
- 印刷範囲指定・選択中範囲印刷
- 用紙の向きを指定する
- 用紙サイズを指定する
- 印刷倍率を指定する
- 印刷倍率を自動調整に設定して1ページ内に収めて印刷
- インク・トナー節約設定
- ページ設定で上下左右の余白を指定する
- ヘッダーとフッターを指定する
- フッターの開始ページ数指定と総ページ数表示
- ヘッダー2行表示や日時表示
- 数式エラーを自動的に空白にして印刷する
- 入力漏れがあったら印刷を自動停止する