マクロでいこう! ~ Excel活用HomePage ~

VBAでラクしたい ~Part 2~

こちらのコーナーでは、VBAの使い方を中心にご紹介していきます。
作者自身の経験から書いておりますので、本とかとは違ったコトを
書いてるトコロもあるかもしれません。 そういう場合は、良さそうな方を信じましょう(^_^;
TOPVBAでラクしたい ~Part 2~ > オプションボタンの処理を書く

オプションボタンの処理を書く

予定通り4日間のお盆休みを無事に過ごさせていただきました(^^)
皆さんは御変わりないですか?

今年のお盆は、大雨による被害が各地で起きていましたから、私も不安になりながらニュース
を見ておりましたが、幸いこちらは何事もなく済みました。

その中でひときわ大きく取りざたされた事故がありましたが、あれはホントに何ともやりきれ
ない気持ちになりましたね。救助が遅い、危機管理がどーでこーでという論点にもなっていま
したけども、やっぱり大前提として"公の警告を無視してどーすんですか!"ってことですよね。

家族も連れてきてるんですから、オトナだったら聞く耳を持って的確に判断してやらないと、
子供はどうすることもできないんですし・・・(-_-メ)

#世の中のオトナ達よ! やっぱり我々もシッカリしようよ!!

てなことを強く感じたお休みでした。


さて本題。

それでは仕様に乗っ取って、オプションボタンの処理を書いていくといたしましょう。

ますは「新規登録」モードから

----------------------------------------------------------------------------------
◆「新規登録」 オプションボタン クリック時 
1.表示を On の状態にし、「修正/削除」オプションボタン表示を Off にする
2.「修正」「削除」「次のレコードに移動」「前のレコードに移動」の各ボタンをクリック
  不可の状態に設定する
3.「登録」ボタンをクリック可能な状態にする
4.表示中のデータをクリアする
----------------------------------------------------------------------------------

1については、実はもう済んでしまってます(^-^;
前回「GroupName」を設定しましたよね?あの状態でもうコードを書く必要もなく、そういう
設定になってますんで、説明はパス(^^;
#あ、でも仕様に記述しておくことはゼッタイに必要なことですから、お間違いなく。

そうしますと最初に書くのは2の処理ですね。

まずは OptAddMode をダブルクリックして、コードを書く場所を準備しませう。

Private Sub OptAddMode_Click()

End Sub

は間違いなく表示されましたか?
「OptAddModeがクリックされた時」の処理ということでOKなわけです。

次に「どうやって各ボタンをクリック不可の状態にするか」ということですよね。

これも実はプロパティにあるのです。あーもう大体何かやろうと思えば、鍵はプロパティに
あるのね、などとわかってくるわけですね。それでケッコウなのです(^-^

で、その使用可or不可を切り替えるプロパティというのは「Enabled」です。
そこの値を見てみましょう。今貼りついているコントロール全部が True になっていますよね。
この True の状態がいわゆる「使用可」の状態、False の時は「使用不可」というわけです。
試しにどっかのボタンを False にしてフォームを起動してみてください。

どうですか?まず文字の色が薄い表示になってますよね。そして押してみてもへこみませんよね。

こうしてEnabledプロパティの値を変化させることによって、処理中に押させたくないボタンを
押せないようにしたり、入力させたくないコントロールを使用不可にしたりできるわけです。

#このプロパティの使い方についてはよろしいですか?ヽ(^-^ )

それではオプションボタンをクリックされた時のタイミングで、この値を切り替える処理を
書いてみましょう。

---------------------------------------------------------------------------------------

Private Sub OptAddMode_Click()
    CmdTouroku.Enabled = True   '登録(可)
    CmdUpdate.Enabled = False   '修正(不可)
    CmdDelete.Enabled = False   '削除(不可)
End Sub

Private Sub OptUpdMode_Click()
    CmdTouroku.Enabled = False  '登録(不可)
    CmdUpdate.Enabled = True    '修正(可)
    CmdDelete.Enabled = True    '削除(可)
End Sub

---------------------------------------------------------------------------------------

さぁどうでしょう。フォームを起動してモードの切替をやってみて下さい。
思った通りに切り替わりましたか?True と False を間違えたりしてませんか?

そういえば

◆「修正/削除」 オプションボタン クリック時 

の処理の途中まで勢いで一緒に書いてしまいましたね(^-^;
でもまぁこれは切替処理ですから、この部分だけは一組で処理を書かないと動きもつかみにくい
ので・・・

とりあえず「新規登録」の4番の処理を先に書きますと、
・・・ってもう書いてありますよね。え?どこに書いてあるかって?

CmdTouroku_Clickのところにもう書いてありましたよ、ホラ↓

---------------------------------------------------------------------------------------
    '*** テキストボックスの値クリア ***
    TxtName.Text = ""
    TxtEmail.Text = ""
    TxtBirthday.Text = ""
---------------------------------------------------------------------------------------


これを単純にコピーして、こちらの処理に埋め込めばいいわけですから
---------------------------------------------------------------------------------------
Private Sub OptAddMode_Click()

    '*** ボタンの使用状態の切替 ***
    CmdTouroku.Enabled = True   '登録(可)
    CmdUpdate.Enabled = False   '修正(不可)
    CmdDelete.Enabled = False   '削除(不可)

    '*** テキストボックスの値クリア ***
    TxtName.Text = ""
    TxtEmail.Text = ""
    TxtBirthday.Text = ""

End Sub
---------------------------------------------------------------------------------------

となればいいわけです。

実行して確認してみてくださいね d(^-^ )


てなことで次回までごきげんよぉぉぉ(^^)/~


TOPVBAでラクしたい ~Part 2~
Copyright (C) 2006 マクロでいこう!. All Rights Reserved.