真・偽(True・False)のON・OFF切替のような2択にはBoolean型を使用します
コードコピー 'ONOFF型の変数宣言
Dim ブール型 As Boolean
コードコピー ブール型 = True 'ON
コードコピー ブール型 = False 'OFF
コードコピー 'ONOFF切替
ブール型 = Not ブール型
ONOFF型の変数は「Boolean型」 を使用します この変数は2通りの値しか代入できません 「True」と「False」の2つのみです
一応、「True」がON、「False」がOFFという感じで考えてください もちろんこれは処理の作り次第で入れ替えられますが、初期値が「False」 なので最初がOFFという方が自然です
この変数を使用するのは、フラグ処理で使う ことが多いです
フラグという単語自体はそれほど専門的な単語とは思いませんが、ONになった状態のことをフラグが立ったという表現をします
この変数を最初に使ったのは、ユーザーフォームのイベント無効 のためでしたユーザーフォームにはイベントを無効にするプロパティが存在しない ため、自分で無効処理を作る必要がありました そんな時に、使ったのがこの変数です
ユーザーフォームの特定の処理を実行したら、まずはこの変数をTrueにします 無効にしたいイベントのプロシージャの先頭に、この変数の状態で処理を実行するかを分岐させます 特定の処理が終わったら、変数をFalseに戻します
イベントの処理は変数がFalseであれば実行されるため、任意のタイミングでイベントを無効にすることが出来ます
これを処理中はフラグを立てておく 、という表現です
またこのTrueとFalseというのは、文字列ではなくキーワードというVBAのコードの一部として認識される のでコーディング上もこの変数を使ったほうが分かり易くなります
ブール型 = True 'ON
ブール型 = False 'OFF
例コードで、2つ目と3つ目はそれぞれON・OFFを切り替えています
TrueとFalseを指定せずに切り替え
'ONOFF切替
ブール型 = Not ブール型
さらに4つ目のコードは、簡単にON・OFFを切り替える方法として紹介しています この右辺についている「Not」 はその後に続くものの否定になります ここでこの変数の最大限の効力を発揮しますTrueのNotはFalse、FalseのNotはTrue となります なので、いちいちON・OFFを書き込まなくても、このコードの発生回数で切り替えが制御できる ことになります
もちろん、もともとの値も変更後の値も可変でコード上からは分からないのでこれだけで良いとはなりませんが、便利な使い方です
さらにこの使い方は、TrueとFalseをプロパティに持つものすべてに対して有効 です チェックボックスのValueもこれで簡単に切り替えたりできますので、他でも使用してみてください