当たり前ですがエクセルを使う上で、セルに数式などが入っていて計算させていますが、#DIV/0!や#N/Aなどのエラー値がそのまま印刷されてしまい見苦しい思いをしたことありませんか?
印刷する時だけ、このエラー値を自動的に空白にしたりダッシュ(-)にVBAコードで置き換えられます。
#DIV/0!や#N/Aのエラー値を空欄にする
印刷ページ設定内の標準機能
意外と知られていないのですが、エクセルの印刷ページ設定を開くと「シート」があり、この中に「セルのエラー」という項目があります。
ここのプルダウンから空白やダッシュ(-)に変更することができます。
意外と知られていないのですが、簡単にできますよね。
PageSetupを使ってVBA設定
ここでは、ユーザーフォームに配置したコマンドボタンにVBAコードを書き、表示中のシートのページ設定(ActiveSheet)で記載しています。
シートを指定する場合はActiveSheetをWorkSheets(“シート名”)に変えるだけです。
これで、エラー値の時のセルがあったら自動的に空白セルにして印刷してくれ、空白の代わりにダッシュ(-)や元に戻すVBAコード、さらになぜかエラー表示(#N/A)に表示する4種類が用意されています。
値 | VBAコード | 内容 |
0 | xlPrintErrorsDisplayd | エラー値を元に戻す(置換無し) |
1 | xlPrintErrorsBlank | エラー値を空白にして印刷 |
2 | xlPrintErrorsDash | エラー値をダッシュ(-)にして印刷 |
3 | xlPrintErrorsNA | エラー値を(#N/A)にして印刷 |
このように印刷ページの設定やVBAでのPageSetupでエラー値を空欄などにできますが、そもそもエクセル関数のIFERRORであらかじめ処理しておくことで回避できるのですが、全てと言う訳にはいかない時もあるので、この方法が便利ですよ。
印刷関連VBA