Excel(エクセル)Findメソッドとは
皆さんExcelのFindメソッドとは何かご存じでしょうか?Find メソッドは、Excel テーブルのセル範囲内で特定のデータを含むセルを検索します。
検索には、指定したデータがすべて一致する場合に検索する完全一致と、データの一部が一致する場合に検索する部分一致の 2 種類があります。Findメソッドでは、引数を指定することで全文一致、部分一致の条件を設定できます。引数には以下の種類があります。
引数 | 定数 | 説明 |
---|---|---|
What | ー | 検索するデータを指定 |
After | ー | 検索を開始するセルを指定 |
LookIn | xlFormulas | 検索対象を数式に指定 |
LookIn | xlValues | 検索対象を値に指定 |
LookIn | xlComents | 検索対象をコメント文に指定 |
LookAt | xlPart | 一部が一致するセルを検索 |
LookAt | xlWhole | 全部が一致するセルを検索 |
SearchOrder | xlByRows | 検索方向を列で指定 |
SearchOrder | xlByColumns | 検索方向を行で指定 |
SearchDirection | xlNext | 順方向で検索(デフォルトの設定) |
SearchDirection | xlPrevious | 逆方向で検索 |
MatchCase | TRUE | 大文字と小文字を区別 |
MatchCase | FALSE | 区別しない(デフォルトの設定) |
今回の記事ではExcelのマクロで検索を行う方法をご紹介していきます。
Excel(エクセル)マクロで検索を行う方法
では、早速ですがExcelのマクロで検索を行う方法をご紹介していきます。先ほどもご紹介した通りマクロで文字を検索するためにはFindメソッドというメソッドを使用します。
使用方法は以下の通りです。
- まず、Dimで変数の宣言をします。
- As ~ で変数の型を指定します。
- 次に検索する範囲のセル、検索するワード、検索する方法を設定しています。
- 最後に検索するワードに一致したときのメッセージを記述しています。
Sub 完全一致()
Dim myRange As Range
Dim myObj As Range
Dim keyWord As String
Set myRange = Range("A1:A3")
keyWord = "Excel"
Set myObj = myRange.Find(keyWord, LookAt:=xlWhole)
If myObj Is Nothing Then
MsgBox "'" & keyWord & "'はありませんでした"
Else
MsgBox "'" & keyWord & "'は" & myObj.Row & "行目にあります"
End If
End Sub
これをそのまま流すことで指定したワードを検索することができます。
上記は完全一致でしたが部分一致で検索したい場合は以下のようにFindメソッドの引数を変更します。
Sub 部分一致()
Dim myRange As Range
Dim myObj As Range
Dim keyWord As String
Set myRange = Range("A1:A3")
keyWord = "Excel"
Set myObj = myRange.Find(keyWord, LookAt:=xlPart)
If myObj Is Nothing Then
MsgBox "'" & keyWord & "'はありませんでした"
Else
MsgBox "'" & keyWord & "'は" & myObj.Row & "行目にあります"
End If
End Sub
今回はマクロで文字を検索する方法を初心者向けに解説しました。今回のような機能であればマクロでやらずともExcelの文字検索で十分ですがもう少し手を加えることで便利なマクロにすることも可能です。興味がある方はぜひ調べてみてください。
Excelの操作方法は実際に手を動かし、身につけていきましょう
今の時代、様々な仕事でExcelを使用することがあるでしょう。今回はExcelのマクロで文字を検索する方法についてご紹介しました。このような機能を使いこなすことができれば仕事にも役に立つので、実際に手を動かし、覚えていきましょう。
WordやExcelなどのOfficeツールでは便利なショートカットキーなどがたくさんあるのでよく使う作業に関してはショートカットキーを調べてみるのも効率よく仕事を進める上で大切なことなのでこれから実践してみましょう。
コメント