VBA別館・Python別館

64522

InputBoxで検索 - Tak

2018/07/29 (Sun) 14:28:53


今度は検索のプログラムを作ってみましょう。

① 住所録に柳田さんは居るか?

sheet上ですと、Find、Searchなどの関数が使えますが、VBAで論理的に考えてみましょう

VBAに一つずつやることをcode枠に書いていきます。

・その指示を出すCommandButton2を作ります--->図参照

・検索する文字列(人の姓)を決める(仮に柳田さんとします)--->VBAのinput関数で、使用者に質問します

・A列の上から順に、そのセルの姓が柳田さんと合致するかどうか調べます--->ここでfor~next、if文が出てきます

・合致すれば、セル(A3)に居りますとメッセージを出して、このプロシージャーを終わります --->メッセージ関数が出てきます

・いなければ、そのような人は居ませんとメッセージを出します


さぁ、頭の体操に考えてみて下さい。


Re: InputBoxの動作確認 - Tak

2018/07/30 (Mon) 08:03:30

② 柳田さんを検索しましょう

柳田さんはA3におります。 これをCellsで表すとCells(3,1)ですので、検索機能が働くかどうかのチェックをしてみます。

ここで新しい関数をご紹介します。 InputBoxと言う簡単な機能です。 codeの中に書くと長くなるので、変数bufに入れます。

Private Sub CommandButton2_Click()

 Dim buf As String 文字列変数です

 buf = InputBox("名前を入力してください")

 Cells(3,7)=buf

End Sub

これでG3に名前が表示されれば成功です。

次回はfor~nextでinputboxで入力した人が、どのセルに居るかを検索します。

Re: InputBoxで検索 - Tak

2018/07/31 (Tue) 08:23:29


③ コマンドボタンの名前を変更しましょう

コマンドボタンが多くなると、何をやるボタンか分からなくなりますので、名前を変えましょう。

・開発-デザインモードと行き

・CommandButton2上でマウスの右ボタンをクリック-プロパティをクリック

・図の様にプロパティ画面が表示されますので、その中のCaptionを好きな名前に変更します

Re: InputBoxで検索 - Tak

2018/07/31 (Tue) 08:31:56

④ コマンドボタンの名称が変更されました

そしてこのボタンをクリックすると、無事セルG3に"柳田"と表示されましたね。

これで②のcodeが働いていることが確認されましたので、次は全員の名前との照合を行います。

Re: InputBoxで検索 - Tak

2018/07/31 (Tue) 19:14:45

⑤ 今度は入江さんを探してみます

codeを次に様に書きました。 説明を付けました。

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

Private Sub CommandButton2_Click()

'姓の検索
Dim buf As String ’InputBoxの内容を格納する変数

Range("A:A").Interior.ColorIndex = 2 '検索で合致した場合、セルを赤く塗りますので、先ずそれを消しておきます

buf = InputBox("検索する人の姓を入れて下さい")

For i = 1 To 7 ’今回は7人しかおりませんので1~7です

If Cells(i, 1).Value = buf Then   'セルCells(1,1)がInputBoxで検索する人と合致したら・・・

Cells(i, 1).Interior.ColorIndex = 3  'そのセルを赤く染める

MsgBox (Cells(i, 1).Address & "におります") '合致したセル番地を表示する

Exit Sub  ' 目的を達成したので、この処理は終了する

End If 'if文の終わりの宣言

Next  '次の番号に移動する

MsgBox ("その名前の人はおりません")  ’合致しなければ、"居ません"と表示

End Sub

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

他にもやり方は沢山ありますが、まず自分に理解し易いcodeで始めるのが一番です。

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.