病院で処方された薬や病気についてわかりやすく解説します

VBA講座2-14  データ登録時に最終確認をするコードを書く

ノートパソコンとハーブ

今回は登録ボタンを押してデータを保存する前に、システム使用者が間違っていないか、本当に登録していいのか最終確認するコードを書いていきます。

ではいきましょう。

スポンサーリンク

MsgBox関数について

 

vba2-14-1早速ですが、上の画像を見て下さい。「うわっ」と思った方もいらっしゃるかもしれません。ぱっと見すごく面倒臭そうですが、実はとってもシンプルです。

 

では1つずつ解説していきましょう。

Dim Msg As String, title As String,res As Integer

「変数Msgを文字列と宣言する、変数titleを文字列と宣言する、変数resを整数と宣言する」になります。

 

これは3つの変数の宣言を1行でまとめています。以前お話した方法で書くと…

Dim Msg As String
Dim title As String
Dim res As Integer

となります。しかし先のように書くと2行減らす事ができます。

 

書き方としては、まず1つ目の変数を宣言した後、「,変数 As データ型」とすればOKです。3つ目も同様に行います。

 

続いて…

Msg = “医薬品データを登録します。よろしいですか?”
title = “医薬品新規登録の確認”

メッセージボックスで表示する文章を変数にそれぞれ入れました。そのためにMsgとtitleはStringで宣言したのです。

 

前回の講座で「登録ボタンを押した時に空欄がある場合」は、特別変数に入れなかったはずと思われた方もいらっしゃるかもしれません。

 

ただ今回はコードがちょっと長くなるので、その中でさらに長ったらしい文章が入っていると見た目も悪いんですよ。だから変数に入れてシンプルにしてしまおうくらいに思って下さい。

MsgBox関数 アイコン、ボタン、標準ボタン

 

res = MsgBox(Msg, vbYesNo + vbQuestion + vbDefaultButton2, title)

これは先ほどの登録ボタンの空欄確認の応用ですね。まず=の左側からいきましょう。

 

res=

これは「変数resは」ですね。変数resに=の右側を入れるという意味です。

 

=の右側

MsgBox(~) ~をメッセージボックスに表示する

この前は()は付けませんでしたが、=の右側に書く時は()を付けると思って頂ければOKです。それでは()内を解説していきます。

 

変数Msg

「 “医薬品データを登録します。よろしいですか?”」ですね。

 

vbYesNo

「はい、いいえボタンを表示する」という意味です。

 

vbQuestion

「?マークを表示する」という意味ですね。一つ前の講座でやりました。

 

vbDefaultButton2

初期に選択されているボタンをボタン2にするという意味です。ここでは「はい」がボタン1、「いいえ」がボタン2となります。そのため変数resはIntegerで宣言したのです。

 

なぜ初期のボタン設定を2にしたのかわかりますね?

登録ボタンを押した後、間違ってEnterキーを押したりしても戻る事ができるようにするためです。

 

以上を+でつなぐ事ができます。

 

title

メッセージボックスの枠に表示する文字列になります。今回は変数titleに入っている “医薬品新規登録の確認”が表示されます。

 

次が今回で一番大切であり、使用頻度が高いコードです。

If res <> vbYes Then Exit Sub

If構文で「End If」を使わないケース。そして<>は「~でない」。ノットイコール「≠」です。

 

「もし変数resがYesでないならば、処理を抜ける」という意味です。つまりこの場合「Yesでない=Noである」となります。という事はこう書いてもOK。

 

If res = vbNo Then Exit Sub

今回はボタンが「はい」と「いいえ」の2つだけなのでどちらで書いてもOKです。ただ3つとかの場合は<>を使うと便利な場合もあります。ぜひ覚えておいて下さい。

 

それでは今回は以上となります。お疲れ様でした。次回はユーザーフォームに入力したデータをワークシートに転記するコードを書いていきます。
次の講座

スポンサーリンク

こちらの記事もおすすめです

関連記事

サイト内検索