いよいよ最終章です。この章では持参薬鑑別報告書を作成する画面を作ります。まさに今までやってきたことの集大成です。今回作成するユーザーフォームでは持参薬鑑別報告書の作成、印刷、データの保存を行えるように設定します。

 

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

スポンサーリンク

タブストップを配置する

 

まずコントロールの配置をするわけですが初めて登場するものが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」とします。タブストリップ、スピンボタンはこんな感じですね。

 

それではそれ以外のテキストボックス、コンボボックス、ボタンなどを配置していきます。下の画像を見て下さい。

 

vba5-1-19

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

 

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

 

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

 

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

 

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

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

 

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

 

例えば8桁でそれ以上入力されたくない場合、8文字までしか入れられない、という設定ができます。テキストボックスのプロパティウィンドウを見て下さい。

 

vba5-1-20MaxLengthという項目がありますね。Lengthの意味は長さ。ここでは最大文字数となります。デフォルトはゼロ。この場合は何文字でも入力できます。ここを例えば8にすれば8文字までしか入れられなくなります。

 

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

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

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

 

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

>>Excel VBA講座 目次へ