pickup

目次

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

 

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

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

問題提起

 

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

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

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

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

解決策

 

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

Enabledプロパティ

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

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

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

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



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


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

フォームを選択します。

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

 

Private Sub Form_Load()

Me.[携帯電話番号].Enabled = False
Me.[固定電話番号].Enabled = False


End Sub

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

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

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

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


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

携帯電話を選択します。

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

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

 

Private Sub 携帯入力_Click()
If Me.[携帯入力] = True Then
Me.[携帯電話番号].Enabled = True
Else
Me.[携帯電話番号].Enabled = False
End If

End Sub

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

Private Sub 固定入力_Click()
If Me.[固定入力] = True Then
Me.[固定電話番号].Enabled = True
Else
Me.[固定電話番号].Enabled = False
End If
End Sub

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

Visibleプロパティ

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



 

 

Private Sub Form_Load()
Me.[携帯電話番号]. Visible = False
Me.[固定電話番号]. Visible = False
End Sub
Private Sub 携帯入力_Click()
If Me.[携帯入力] = True Then
Me.[携帯電話番号]. Visible= True
Else
Me.[携帯電話番号]. Visible= False
End If

End Sub
Private Sub 固定入力_Click()
If Me.[固定入力] = True Then
Me.[固定電話番号]. Visible= True
Else
Me.[固定電話番号]. Visible= False
End If
End Sub

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

ここがポイント

 

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

まとめ

 

今回のまとめ
sesuo6.jpg
今回で、IF構文はマスターできましたか?条件判定は、VBAでは非常に重要です。しっかりとマスターしてください。また、どんなに良い成果物があっても、人の要望は果てしないものです。その要望に負けないように、スキルアップしてください。
毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

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

スポンサーリンク

Twitterでフォローしよう

おすすめの記事