pickup

目次

究極の条件判定

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

IF構文、Select Case構文など、このブログで紹介してきました。

今回は、条件判定の構文を使わない条件判定の方法を紹介します。

問題提起

阿久 世子男(アク セスオ)は、Excelで入力フォームを作成しました。なんとか、入力漏れをなくしたいと思いますが、入力ミスがなくなりません。
何か良い方法はないだろうか?

Visibleプロパティ、Enabledプロパティを使う

Visibleは、Trueでボタンが現れます。Falseでボタンが消えます。

Enabledは、Trueでボタンをクリックできます。Falseでボタンをクリックできなくなります。

入力ミスを防止するためには使える技になります。

ユーザーフォーム編

ボタン作成


「開発タブ」⇒「Visual Basic」をクリックします。


「挿入」⇒ 「ユーザーフォーム」を選択します。



このようにボタンを選択後、フォーム上でドラックします。


ボタンができました。


この赤枠の中が、ボタンのレイアウトを決めます。


文字のFontを24に変更して、文字を大きくします。


文字が大きくなりました。


文字は普通に変更できます。


ここでボタンのBackの色を変更できます。


色が変更になりました。

この要領で、ユーザーフォームを作成します。


このように作成します。


この青のボタンをクリックしたときに、【とまれ】をクリックできなくします。


【青】のボタンの名前は、【CommandButton1】です。

【すすめ】のボタンの名前は、【CommandButton2】です。

【赤】のボタンの名前は、【CommandButton3】です。

【とまれ】のボタンの名前は、【CommandButton4】です。

 

Private Sub CommandButton1_Click()
CommandButton2.Enabled = True
CommandButton4.Enabled = False
End Sub


Private Sub CommandButton2_Click()
MsgBox "せいかい"
End Sub


Private Sub CommandButton3_Click()
CommandButton2.Enabled = False
CommandButton4.Enabled = True
End Sub


Private Sub CommandButton4_Click()
MsgBox "せいかい"
End Sub

フォームを起動するときのコード


 

Sub 起動()
With UserForm1
.CommandButton4.Enabled = False
.CommandButton2.Enabled = False
.Show
End With

End Sub

Withステートメントでコードを簡略化します。

WorkSheet編

ボタン作成


「開発」⇒「デザインモード」⇒「挿入」⇒「ActiveXコントロール」⇒「コマンドボタン」


ボタンができました。


ボタンの編集をします。

必ず、「デザインモード」を選択したままにしてください。


ボタンを右クリック⇒「コマンドボタンのオブジェクト」をクリックします。


文字が編集できました。


今度は、「プロパティ」をクリックします。


ユーザーフォーム作成時と同じように、この赤枠の中で、ボタンの編集をします。

 

Private Sub CommandButton1_Click()
CommandButton3.Visible = False
CommandButton4.Visible = True

End Sub


Private Sub CommandButton2_Click()
CommandButton4.Visible = False
CommandButton3.Visible = True

End Sub


Private Sub CommandButton3_Click()
Range("C2") = "すすめ"

End Sub


Private Sub CommandButton4_Click()
Range("C2") = "とまれ"

End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton3.Visible = False
CommandButton4.Visible = False
MsgBox "クイズ開始"

End Sub

Sheet1に上記のコードを仕込みます。

Worksheet_SelectionChange

このコードの意味は、少し特殊なのですが、開いているWorkSheet上で何かが起こったら、コードが実行されます。

つまり、何かセルをクリックすると、リセットされ、【クイズ開始】とメッセージボックスが表示されます。

あとは、Visibleプロパティを使って、ボタンを出現させる、消すというコードを記載します。

まとめ

VBAは、何かの成果物を作成することが、一番のスキル向上になります。

子供がいらっしゃる方は、ぜひ、Excelで遊んでみてください。

そこから得られる知識は、間違いなく、みなさんの業務に生かされると思います。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事