強制的に入力できないようにする

 

こんにちは。伊川(@naonaoke)です。

今回は、入力不要なテキストボックスをグレイアウトさせる方法を紹介します。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は、電話番号の桁数が違うと、登録できないというシステムを作成しました。しかし、システムを展開した部署から、不評の声がとまりません。不評の内容は下記の通りです。

・携帯電話の入力のテキストボックスと、固定回線の入力のテキストボックスの間隔が狭い。

・その結果、固定回線の入力のテキストボックスに、携帯電話の番号を入力してしまう。

なにか、改善する良い方法はないだろうか?

解決策

 

回答
sesuo2.jpg
・Enabledプロパティで対象のテキストボックスをグレイアウトにする・Visibleプロパティで、対象のテキストボックスを消す

Enabledプロパティ

上の記事の続きになります。

上の記事では、Exit Sub を使って、IF構文の条件から抜ける方法を紹介しました。

今回は、チェックボックスに、チェックが入ると、入力可能になります。

反対に、チェックボックスにチェックが入らなければ、グレイアウトのままになります。



作成手順 その1 はじめからグレイアウトにするには?


上の図のように、プロパティシートを選択します。

フォームを選択します。

「読み込み時」⇒「イベントプロシージャ」を選択します。

 

上記のコードを入力します。

Enabledプロパティは、Falseなら、グレイアウトのままで、Trueなら、入力できるようになります。

フォームを起動した場合は、はじめからグレイアウトに設定しています。

作成手順 その2 チェックボックスにチェックを入れたら、入力可能にする


上の図のように、プロパティシートを選択します。

携帯電話を選択します。

「クリック時」⇒「イベントプロシージャ」を選択します。

※チェックボックスの場合は、クリックはしませんが、チェックを入れることを、クリック時にします。

 

上記のコードを入力します。

固定回線の場合は、上記のコードを入力します。

Visibleプロパティ

作成手順は、まったく同じです。



 

 

コード自体は、EnabledをVisibleに変更しただけです。

ここがポイント

 

ここがポイント
Function8.png
条件式を間違うと、テキストボックスが表示されなかったり、グレイアウトのままだったりします。最初は、VBAを使うのが面白くて、凝ったものを作成しがちです。悪くはありませんが、シンプルなものが、メンテナンスも容易です。

まとめ

 

今回のまとめ
sesuo6.jpg
今回で、IF構文はマスターできましたか?条件判定は、VBAでは非常に重要です。しっかりとマスターしてください。また、どんなに良い成果物があっても、人の要望は果てしないものです。その要望に負けないように、スキルアップしてください。
サンプルファイルの購入
ブログが動画で紹介した内容のサンプルファイルを
購入できます。月額3,000円です。
練習用ファイルもダウンロードできます。
PayPal経由でお支払いでます。
ダウンロード回数に制限はありません。

今回のサンプルファイルは、No38です。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事