Excelを勉強しましょう EnjoyExcel

アイコンの機能や関数の説明、VBA初心者向けの勉強方法について情報掲載しています。関数、VBAともに理解が進むように出来るだけ事例を交えて説明しています。

VBA⑪ メッセージボックス。アプリケーションっぽくなってきた。

f:id:EnjoyExcel:20210627203040p:plain

余談ですけど N-Box知ってる人居ますか?

 

当時ジュビロ磐田で名波さんを中心に据えたフォーメーションです。藤田、服部、福西等々のメンバーがフォーメーションをどんどん入れ替えながら流れるような攻撃を展開していく様は驚きしかなかったです。ポジションなんか関係なく常にグルグルしている印象でさっきボランチにいたのに今は左サイドですか??みたいな感じでしたよ。

 

今でもあれよりすごい連動性があるチームは日本にはないんじゃないかと思っています。(他サポさん申し訳ございません)

 

では勉強を進めます。前回はメソッドについて少し説明しました。

enjoyexcel.hatenablog.com

 

今回はメッセージボックスになります。

実行ボタンを押した後に以下のようにメッセージボックスを出してみようと思っています。

f:id:EnjoyExcel:20210627220340p:plain

 

アプリケーションっぽくなりますよね。加えてIF文について勉強できるので採用してみました。

 

建付けとしては実行ボタンを押したら上記のようにメッセージボックスを出してOKならOKの処理を行いキャンセルならキャンセルの処理を行うというコードを書いてみます。

 

まずはコードを紹介します。

f:id:EnjoyExcel:20210627222202p:plain

キーとなるのは2つ。

メッセージボックスの書き方とIF文の書き方ですね。

 

メッセージボックスは以下のように書きます。

 

ちょっと理屈っぽくコードの骨格を書いてみます。

(ちょっとずつ出していきますので慣れてください)

 

MsgBox ( prompt , [Buttons],[Title],[HelpFile],[Context])

 

[ ] の中は省略可能です。 promptだけは必須です。

 

prompt

メッセージボックスに表示させる文字です。上の画像に置き換えると「実行しますか」という文字になります。

 

Buttons

ボタンの種類やアラートマークの設定をします。今回はOKとCancelを表示させたかったのでvbOKCancelにしています。 +vbExclamationで警告メッセージを出しています。上の画像に置き換えると「△の中に!マークがある表示」ですね。

 

Title

メッセージボックスのタイトルです。上の画像に置き換えると「テスト」という文字です。

 

HelpFile と Context は私も分かりません。(すいません)多分使わないと思いますが興味ある方は調べてみてください。

 

メッセージボックスのOKボタンは戻り値が1、キャンセルボタンは戻り値が2です。

どちらか押されたボタンの戻り値が変数「回答」に収納されるという建付けになっています。ちなみに変数の宣言は1か2しかないのでIntegerで適当だと思います。

 

メッセージボックスにはもっとたくさんの仕様がありますがここでは省略します。今回の形を覚えてもらえればあとは要素を入れ替えるだけです。このまま先に進みます。

 

次にIF文です。

 

IF文も形が決まっています。

 

↓以下がフォーマットです。

IF  条件 Then

 条件がTrueだった時の処理

Else

 条件がFalseだった時の処理

End If

↑ここまで。

 

これに当てはめればOK。ワークシート関数でIF文書いている人達は結構イメージしやすいのでは?と思います。 IF(条件,Trueの時,Falseの時) っていう関数を縦に書いただけっていう感じを個人的には持っています。

 

今回はメッセージボックスでOKボタンが押されて変数「回答」に1が代入されたらセルA1に OKですよ と表示されます。メッセージボックスでキャンセルボタンが押されて変数「回答」に2が代入されたらセルA1に Cancelですよ と表示されるというコードになっています。

 

いかがでしょうか?理解出来ましたか?

 

ワークシート関数の様にIF文を重ねて書いたりすることも可能です。IF文が理解出来るとコードの幅が広がりやれることも増えます。

 

なによりIF文はマクロの記録では再現出来ないコードになりますのでこれが書けるだけで普通の方が出来ない事が出来るという事になります。

 

では次はループ処理です。これもマクロの記録では書けないコードです。

 

みんなで勉強してスキルアップしましょう。