いよいよ最終章です。この章では持参薬鑑別報告書を作成する画面を作ります。

 

まさに今までやってきたことの集大成!

 

今回作成するユーザーフォームでは持参薬鑑別報告書の作成、印刷、データの保存を行えるようにします。

 

難しく感じる方もいるかもしれませんが、ここまで来れたあなたなら大丈夫です。

 

新しいコードやコントロールが出てきますが、皆さんは問題なく乗り越えられるでしょう。それではいきましょう。

スポンサーリンク

TabStrip(タブストリップ)を配置する

まずコントロールの配置をするわけですが、初めて登場するものが2つあります。

 

vba5-1-1一つ目はタブストリップです。上の画像の左側です。タブストリップはページの切り替えができるコントロールです。

 

ちなみに、ツールボックスでタブストリップの右隣に似たようなアイコンでマルチページというものがあります。

 

見た目はそっくりなこの2つ。何が違うのでしょうか。

 

違いはページを切り替えた時にコントロールが共有されるか、ページ毎に配置が必要かどうかです。タブストリップは前者、マルチページは後者となります。

 

もう少し具体的にお話しますと…

タブストリップTab1にテキストボックスを配置すると、Tab2にも自動的に配置される。
マルチページTab1にテキストボックスを配置してもTab2には配置されない。必要ならTab2に改めて配置する必要がある。

こんな感じですね。

 

今回はページ間でオブジェクトを共有したいのでタブストリップを選びました。では早速配置してみましょう。

 

vba5-1-2ツールボックスから選択します。

 

vba5-1-3配置の方法はラベルなどと一緒ですね。左クリックしてクリックしたまま右下へ移動させます。

 

vba5-1-4タブのページは最初2つ(Tab1、Tab2)になっています。タブの名前を変更していきましょう。

 

vba5-1-5まずTab1を1回クリックします(ダブルクリックはしない)。

 

vba5-1-6もう一度クリック。

 

vba5-1-7そこで右クリックして名前の変更を選択します。

 

vba5-1-8上のような画面が出てきましたね。キャプションのTab1を…

 

vba5-1-9No1に変更します。OKを押すと…

 

vba5-1-10入力が反映されました。

 

vba5-1-11続いてページを増やしていきます。右クリックして新しいページを選択

 

vba5-1-12ページが増えました。

 

vba5-1-13鑑別報告書1枚につき10個の医薬品を掲載します。ページを10個まで増やして下さい。

 

vba5-1-14そして名前をNo1~No10とします。タブストリップは今回は1つしか配置しませんので、オブジェクト名は変更しない事にします。

スポンサーリンク

スピンボタンを配置する

 

vba5-1-15続いてスピンボタンを配置します。見た目は上と下の矢印が合体した感じですね。

 

スピンボタンは基本的に単体では使用せず、テキストボックスに隣接して配置します。

 

「上下の矢印を押すとテキストボックスの数字が増減する」といった感じで使う事が多いかと思われます。

 

それでは配置していきましょう。ツールボックスで選択して…

 

vba5-1-16配置したい場所で左クリック。

 

vba5-1-17配置されました。他のコントロール同様、大きさも自由に変更できます。

 

vba5-1-18スピンボタンは2つ配置しますのでオブジェクト名をそれぞれ「spnPage1」、「spnPage2」とします。

 

タブストリップ、スピンボタンはこんな感じでOKです。

 

続いてタブストリップ、スピンボタン以外のテキストボックス、コンボボックス、ボタンなどを配置していきます。下の画像を見て下さい。

 

今回はユーザーフォームは大きめ(横長)に作ります。オブジェクト名は「frmInput」とします。

 

タブストリップも最初大きめに設定して、その上にボタンやテキストボックス等を配置してください。その後で適正な大きさに調整しましょう。

 

タブストリップのオブジェクト名は弄らなくて結構です。スピンボタンは2つ配置。

 

患者情報と医薬品情報を分ける線は他のユーザーフォームと一緒のやり方で、ラベルの高さを1にするだけです。

 

結構たくさんコントロールがあって大変ですが、上の画像を参考にして頑張って配置してみてください。

テキストボックスの文字数制限について

最後に患者ID(ここではtxtPtID)についてお話します。患者IDは病院により桁数が異なるかと思います。

 

例えば8桁でそれ以上入力されたくない場合、8文字までしか入れられない、という設定ができます。

 

テキストボックスのプロパティウィンドウを見て下さい。

 

vba5-1-20MaxLengthという項目がありますね。Lengthの意味は長さ。ここでは最大文字数となります。デフォルトはゼロであり、このままいじらなければ何文字でも入力することができます。

 

ここを例えば8にすれば8文字までしか入れられなくなります。

 

更に今回は使いませんが、ID8文字の場合、7文字以下ではエラーが発生するというコードを書くと…

If Len(txtPtID.Value) <= 7 Then
MsgBox “患者IDは8桁で入力して下さい。”, vbInformation, “確認”
txtPtID.SetFocus
Exit Sub
End If

こんな感じで書くことができます。よろしければ使ってみてください。

 

それでは今回はここで終了です。お疲れ様でした。次回はタブオーダーを設定します。

>>Excel VBA講座 目次はこちら