【業務改善】Findメソッドを応用した転記方法を解説!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
条件に当てはまる時だけ転記する方法ってどうやるの?
- 条件に当てはまる時だけ転記する方法
- Findメソッドの基礎的な使い方
- 最低限の引数指定で使う方法
はじめに
早速結論ですが、Findメソッドを応用すれば条件に当てはまる時だけ転記をすることができます。
まずはサンプルコードと画像から処理の流れを確認していきましょう!
Sub 転記()
Dim KW As Range
Dim rng As Range
Set rng = Worksheets("シート2").Range("C9")
Set KW = Worksheets("シート2").Range("C2:C7").Find(what:=rng, lookat:=xlWhole)
If Not KW Is Nothing Then
KW.Offset(0, 1).Copy Worksheets("シート1").Range("C2")
End If
End Sub
このように画像①に入力した内容に応じて画像②の表から当てはまる結果を返すことができました。
Findメソッドを使えば表の中から検索をしてデータを返すことができるのです!
Findメソッドとは
Findメソッドとはメソッドの1つで、オブジェクト(対象)に命令を与えることができます。
Findメソッドは指定したデータをオブジェクトの範囲から検索してデータを返すメソッドです。
Findメソッドの使い方
次にFindメソッドの使い方を見ていきましょう!
Range.Find(What, After, LookIn, LookAt,SearchOrder, SearchDirection, MatchCase,MatchByte, SearchFormat)
このようにFindメソッドにはたくさんの引数があります。
これだけ見ても全くわかりませんよね笑
実務で使う上で全ての引数を指定すること場面はほとんどありません。
サンプルコードではWhatとLookAtだけを指定しました。
Whatには検索するデータを入れます。一般的に文字列や数値が入ります。
LookAtには部分一致か完全一致かを指定できます。サンプルコードでは完全一致にするためLookAt:=xlWholeと記述しています。
他の引数については下記の表を確認して使ってみてください!
引数 | 内容 |
---|---|
What | 検索するデータです。文字列など、セル内のデータに該当する値を指定します。 |
After | セル範囲内のセルの 1 つを指定します。 このセルの次のセルから検索が開始されます。 引数 After で指定するセルは、コードからではなく、通常の画面上で検索を行う場合のアクティブ セルに該当します。 このセルの次から検索が開始されるため、範囲内の他のセルがすべて検索され、このセルに戻るまで、このセル自体は検索されません。 この引数を省略すると、対象セル範囲の左上端のセルが検索の開始点になります。 |
LookIn | 情報の種類を指定します。 xlFormulas:数式 xlValues:値 xlComents:コメント文 |
LookAt | xlPart:検索テキストの一部を検索します。 xlWhole:検索テキスト全体を検索します。 |
SearchOrder | xlByColumns:列を下方向に検索してから、次の列に移動します。 xlByRows:行を横方向に検索してから、次の行に移動します。 |
SearchDirection | xlNext:一致する次の値を検索します。 xlPrevious:一致する前の値を検索します。 |
MatchCase | 大文字と小文字を区別するには、True を指定します。既定値は False です。 |
MatchByte | この引数は、2 バイト (全角) 文字の言語サポートが選択またはインストールされている場合にだけ使用できます。 2 バイト文字が 2 バイト文字とだけ一致するようにする場合は、True を指定します。 2 バイト文字が 2 バイト文字だけではなく、対応する 1 バイト文字とも一致するようにする場合は False を指定します。 |
SearchFormat | 検索の書式を指定します。 |
まとめ
今回はFindメソッドを活用した転記方法を紹介しました。
筆者自身この方法でかなり業務を時短できています。
他にももっと高速で処理する方法を模索していますが、初心者に易しいこの方法もおすすめです。
ぜひ実際に手を動かしながら試してみてください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!