Home » エクセルマクロ・Excel VBAの使い方 » VBAでOn・Offを切り替えるNot演算子

対象:Excel97, Excel2000, Excel2002, Excel2003

印刷プレビューの点線を非表示にする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演算子を使ってオンとオフを切り替えるサンプルマクロ

これはこれで間違いとは言えませんが、もっとスマートに書くことができます。

Sub 改ページの点線表示を切り替える()
 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を切り替えるようなマクロを作成する際にも利用できる方法です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAでOn・Offを切り替えるNot演算子

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.