印刷プレビューの点線を非表示にするExcelマクロをご紹介しました。
DisplayPageBreaksプロパティをFalseにして非表示にするだけのマクロなわけですが、この方法を知った方から
「非表示だったら表示に、表示されていた場合は非表示にするマクロにするには、どうすればいいのでしょう?」
といったご質問をいただくこともあります。
If文でオンとオフを切り替える例
プログラミングに慣れていない方だと、以下のようなマクロを作成してしまいがいがちでしょう。
Sub Sample()
With ActiveSheet
If .DisplayPageBreaks = True Then
.DisplayPageBreaks = False
Else
.DisplayPageBreaks = True
End If
End With
End Sub
If文を使って、DisplayPageBreaksプロパティがTrueだったらFalseにして、そうでなければ・FalseならばTrueにするという処理をそのまま記述したわけです。
Not演算子を使ってオンとオフを切り替えるサンプルマクロ
これはこれで間違いとは言えませんが、もっとスマートに書くことができます。
With ActiveSheet
.DisplayPageBreaks = Not .DisplayPageBreaks
End With
End Sub
先ほどのIf文を使った例では「If」から「End If」まで5行になっていた部分が、「.DisplayPageBreaks = Not .DisplayPageBreaks」1行で済んでしまうのです。
Not演算子は論理否定を求める演算子なので、元がTrueだったらFalseを、元がFalseだったらTrueを返します。
右辺のDisplayPageBreaksが、元のDisplayPageBreaksプロパティ値で、それをNot演算子で論理否定した値が左辺のDisplayPageBreaks(即ち新しいDisplayPageBreaksプロパティ値)に代入され、結果として印刷プレビューの点線に表示/非表示が切り替わるわけです。
今回は印刷プレビューの表示/非表示切り替えマクロでNot演算子の利用方法をご紹介しましたが、その他のOn/Offを切り替えるようなマクロを作成する際にも利用できる方法です。
- Newer:画面切り替えのタイミングを数値で一括指定
- Older:変更履歴記録モードを解除する
Home » エクセルマクロ・Excel VBAの使い方 » VBAでOn・Offを切り替えるNot演算子