はじめろぐ

Excel VBA(マクロ)でフラグを使う方法、場合分けに便利

静岡県三島市の税理士、松井元(@hajime_matsui)です。
こんにちは!

プログラミングには「フラグが立つ」という考え方があります。

そして、それは Excel VBA(マクロ)でプログラミングするときにも使えます。

場合分けをするときに便利です!

スポンサーリンク

1、Excel VBA(マクロ)でのフラグの使い方

よく「〇〇フラグが立つ」って言い方をすると思いますが、その場合のフラグが立つというのは「条件を満たす」という意味になります。

「今日、残業フラグが立ったよぉ。」

とぼやく人は、定時直前に上司から「今日中にこれやっといて!」と指示を受けたりしたのでしょうね。

残業の条件 = 上司からの突発的な指示

を満たしてしまったのです。

さて、元々このような↑ フラグという表現はプログラミングから来ているはずです。

プログラミングで言う「フラグが立つ」というのも、「条件を満たす」ことであり

条件を満たしたときに、「0を1にする」ことでそれを表現します。

例えば、変数 Flag を使っていた場合、最初は Flag を0にしておきます。

Flag = 0

そして、条件を満たしたときに Flag を1にします。

Flag = 1

*ここで言う条件というのは、例えば

●セルA1に文字が入力されている場合
●セルA1~A10の合計が100を超えた場合

のように表現できることであり、プログラミング上では IF 文を使って表すことが多いです。

そして後々、変数 Flag が0か1か?(フラグが立っているか否か?)によって、処理を分けるのに使います。

1、Excel VBA(マクロ)でフラグを使う実例

さて、それではフラグを使った簡単な実例を示しますね。

例えば、次のようなシートがあったとします。

・セル「B1」に消費税率を入力
・セル「B2」に税込売上高を入力

して、マクロを実行するとセル「B3」に税抜売上高が表示されるものですが

セル「B1」に入力する消費税率は 8 or 10 でなければならないものとします。

フラグを使って、上記以外の消費税率が入力された場合にアラートを表示して終了するようにしてみます。

*VBA を使わなくてもできることではありますが。

全VBAコード

全VBAコードを以下に示します。

VBAコードのフラグ部分の解説

セル「B1」に入力された値が 8 でも 10 でもない場合に、変数 Flag を 1にしてます。

つまりフラグを立てています。

変数 Flagが 1になっている場合(フラグが立っている場合)は

・アラートを表示
・セル B2、B3 の値を消す
・コードを終了

上記のようにしています。

つまり、セルB1に 8 か 10以外の消費税率が入力されたら計算をしないようにしているということです。

3、まとめ

Excel VBA(マクロ)でフラグを使う方法についてお話ししました。

簡単な実例を示しましたが、実際にはもっと色々と複雑な処理をします。

条件を満たすかどうか?

0か1か?

で処理のパターンを分けることで、頭の中をすっきりと整理することができるのがフラグの良いところだと思います。

編集後記

昨日(9/5)は午前中は、相続の現地調査へ。

土地の形状を確認し、間口の距離を測定して来ました。

また、午後は新規でやらせて頂いている顧問先を訪問しfreeeの使い方などをご指導させて頂きました。

モバイルバージョンを終了