今回はワークシートに転記された医薬品情報を削除するコードを書いていきましょう。間違って登録した場合は当然削除が必要になります。

 

具体的にはfrmInputの削除ボタンを押すと、印刷シートの該当する医薬品情報のセルを空欄にするというものです。それではいきましょう。

スポンサーリンク

ワークシートの医薬品情報の削除

 

vba5-10-1まずは削除ボタンをダブルクリック。又は右クリックからコードの表示。

 

登録の場合は特別必要ありませんが、削除の場合は「本当に削除していいの?」の確認メッセージを表示させます。医薬品の修正・削除画面でやりましたね。今回はそれをちょっとだけ応用します。

 

vba5-10-2こんな感じで書いてみました。解説していきます。

 

Dim Msg As String, title As String, i As Integer

「変数Msgと変数titleを文字列と、変数iは数字と宣言する。」

 

i = TabStrip.Value + 1

「変数iにはタブストリップの値+1の値を入れる。」この理由は下を見ればわかります。

 

Msg = “No” & i & “に入力されたデータを削除します。よろしいですか?”

「変数Msgには=の右側の文字列を入れる。その文字列とは”No変数iに入力されたデータを削除します。よろしいですか?”とする。」

 

今までは文章を入れるだけだったので=の右側は””で囲んでその中に文章を書けばよかったのですが、今回は変数iが入っています。その場合は“文字列”& 変数i &”文字列”のように書きます。

 

変数には””を付けないことを覚えて下さい。Noはタブの番号。例えばタブ1を開いている場合、タブストリップの値は0ですね。つまりそれに1を足せばタブの表示(No1)と整合性がとれるというわけです。

 

もし

i = TabStrip.Value + 1

の右側の+1がなければ、タブNo1が選択されている時に削除ボタンを押すと…「No0(ゼロ)に入力されたデータを削除します。よろしいですか?」と表示されてしまいます。

 

その後のメッセージの表示や、初期選択ボタンについては何回もやっているので解説は省略させて頂きます。

 

さて次に何をすればいいでしょうか?まず医薬品情報のテキストボックス、コンボボックスの削除します。その後に印刷シートの医薬品情報も削除するという流れでいきたいと思います。

スポンサーリンク

vba5-10-3ユーザーフォーム上の医薬品情報を削除するのは上の画像のように書けばできます。これでも全然いいんですが、この前使った方法を思い出してみましょう。

 

今回ユーザーフォームには医薬品情報以外にもテキストボックスがたくさん配置されています。つまりテキストボックスを一括指定して削除すると、患者情報や診療科、病棟なども削除されてしまいます。

 

そのためオブジェクト名で削除する(空欄にする)コントロールを指定するのがいいでしょう。

 

前にtxtのtを削除したのを覚えていますか?今回も同じように行います。一部のテキストボックスのtxtの2個目のtを削除しましょう。

 

vba5-10-4上の画像を参考にしてください。テキストボックスを一括して空欄にするコードは前に書きましたね。

 

vba5-10-5frmDCorrectのコードを表示。

 

vba5-10-6frmDCorrectの検索ボタンを押した時のコードをコピーしてしまいましょう。

 

vba5-10-7戻って貼り付ければOK。残っている処理は「印刷シートの医薬品情報を削除する」ですよね。

 

これめちゃくちゃ簡単です。前の講座でやったコードがそのまま使えます。では登録ボタンのコードを見て下さい。

 

vba5-10-8frmInputのコードを表示。

 

vba5-10-9そのまま全部コピーします。最初のPrivate Sub btnRegist_Click()と最後のEnd Subはもちろん不要です。

 

これをそのまま先ほどのコードの下に貼り付けて下さい。ちょうどその前に医薬品情報のテキストボックスを空欄にしているので、このコードを使い回せるんですよね。

 

これで完成といきたいところですが、一部コードを修正する必要があります。スピンボタンの増減を表示するテキストボックス、txPage1とtxPage2、実施日を表示するtxJissibiですね。

 

vba5-10-10txtから2個目のtを取ります。

 

vba5-10-11同じく2個目のtを取ります。これで完成ですね。

 

それでは今回は以上で終了とします。お疲れ様でした。次回は印刷シートに転記した医薬品情報を全て削除するコードを書いていきます。

>>Excel VBA講座 目次へ