訪問して頂きありがとうございます。まさふくろーです。
この記事では使用例を使って、セルに入力された値を一覧表から探す方法をご紹介します。
目次
使用例
使用するメソッド
Findメソッド
Rangeオブジェクト.Find(What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
解説 | Rangeオブジェクトで指定したセル範囲から、引数で指定した条件にしたがってデータを検索し、検索結果のセルを表すRangeオブジェクトを返す。見つからなかった場合は、「Nothing」が返される。 | |||||||
引数LookIn、LookAt、SearchOrder、MatchCase、MatchByteの設定は、前回の検索時の設定を引き継ぐ。 | ||||||||
引数 | What: 検索する値を指定する。 |
|||||||
After: 検索範囲内のセルを指定する。指定した次のセルから検索が開始され、指定したセルは最後に検索される。省略した場合は検索範囲の左上隅のセルから検索が開始される。 |
||||||||
LookIn: 検索対象(数式/値/コメント)を指定する。設定値は、下表参照。セルに数式が入力されている場合に、数式内の文字を検索するのか、数式の結果(値)を検索するのか、指定が必要になる。
|
||||||||
LookAt: 検索方法(完全一致/部分一致)を指定する。設定値は、下表参照。完全一致の場合は、セル内のデータが引数Whatで指定した値に完全に一致するセルだけが検索される。部分一致の場合は、セル内のデータに引数Whatで指定した値を含むセルが検索される。
|
||||||||
SearchOrder: 検索の順序(行方向/列方向)を指定する。設定値は下表参照。行方向の場合は1行分の検索が済んだ後で次の行に進み、列方向の場合は1列分の検索が済んだ後で次の列に進む。
|
||||||||
SearchDirection: 検索の方向(次へ/前へ)を指定する。設定値は下表参照。省略した場合は「次へ」となる。
|
||||||||
MatchCase: アルファベットの大文字/小文字を区別して検索する場合は「True」、区別しない場合は「False」を指定する。 |
||||||||
MatchByte: 文字の全角/半角を区別して検索する場合は「True」、区別しない場合は「False」を指定する。 |
||||||||
SearchFormat: 書式の検索を行う場合は「True」、行わない場合は「False」を指定する。 |
Selectメソッド
Rangeオブジェクト.Select
解説 | Rangeオブジェクトで指定したセルやセル範囲を選択する。 |
使用するプロパティ
ActiveCellプロパティ
Applicationオブジェクト.ActiveCell
解説 | アクティブセルを参照するRangeオブジェクトを取得する。Applicationオブジェクトは省略できる。 |
Interiorプロパティ
Rangeオブジェクト.Interior
解説 | セルの塗りつぶしを操作するためのInteriorオブジェクトを取得する。 |
Colorプロパティ
オブジェクト.Color
解説 | セルの塗りつぶしの色や文字の色を取得/設定する。色は、RGB値を使用する。 |
RGBの値を調べる方法
セルの書式設定画面にて、①「塗りつぶし」タブをクリック⇒②「その他の色」ボタンをクリックします。
「ユーザー設定」タブをクリックすると、画面下に「赤(R)、緑(G)、青(B)」の値が表示されます。
ボタンの作成
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。
シート上にカーソルを移動し、ポインターを「+」の状態にします。
左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。
「マクロの登録」画面が表示されます。
①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。
ボタンの名前を変更する
エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。
右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。
ボタンの名前を変更します。
サンプルプログラム
VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub 検索ボタン_Click() Dim rng As Range Set rng = Range("B3:B13").Find(what:=Range("E3").Value, lookAt:=xlPart) If rng Is Nothing Then MsgBox "該当データがありません。" Else rng.Select ActiveCell.Interior.Color = RGB(255, 192, 0) End If End Sub |
3 | Range型の変数を宣言 |
5 | 「B3~B13」セルから「E3」セルの値を完全一致で検索し、変数に格納 |
7 | 検索した結果、見つからなかった場合は、 |
8 | メッセージ「該当データがありません。」を表示する。 |
9 | 検索した結果、見つかった場合は、 |
10 | セルを選択する。 |
12 | 選択したセルの背景色をオレンジ色にする。 |
VBAコードの保存
「ファイル」タブをクリックします。
「名前を付けて保存」を選択し、ファイル保存画面を起動します。
①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。
最後まで読んでいただき、ありがとうございました!