
No.1ベストアンサー
- 回答日時:
次のようにすればよいでしょう。
Sub Sample()
Dim 列 As Long
列 = WorksheetFunction.Match("検索文字", Range("1:1"), 0)
End Sub
No.2
- 回答日時:
No.1 さんのように、MATCH 関数のほうが手っ取り早いと思います。
ですが、あえて Find メソッドについて回答してみます。A1:A2 が結合されている状態で、手動で検索(Ctrl+F)してみれば分かりますが、ヒットしません。結合の位置が B1:B2 であれば、アクティブセルの位置が適切なら結合セル中の文字列でもヒットしますけど。というわけで、これは Excel の仕様ということで、何ともならないと思います。
下のコードでは、A1 セルとその他の範囲というふうに分けて、それぞれを調べています。
また、Find メソッドのほうは「Rows("1:2")」あるいは「Range ("1:2")」というふうに結合セルの全体を含む範囲にしないと、やはりヒットしません。手動でも同じです。
なお Range.Find.Column というふうに、いきなりプロパティを求めようとしてしまうと、Find メソッドが Nothing を返したとき(文字列が見付からなかったとき)に、エラーになってしまいます。したがって面倒でも、検索結果を Set するなどして、必ず Nothing か否かを確認してから列を求めるのがいいでしょう。
あと、何だか前述の説明と矛盾しているような話ですが、Cells.Find であれば、A1:A2 が結合されていてもヒットします。シート上の適当な位置にカーソルをドラッグせずに置いて手動で検索しても、同様です。
Sub Sample()
Const s As String = "検索文字"
Dim r As Range
Dim 列 As Long
If Range("a1").Value = s Then
Debug.Print 1
Exit Sub
End If
Set r = Rows("1:2").Find(What:=s, LookAt:=xlWhole)
If Not r Is Nothing Then 列 = r.Column
Debug.Print 列
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
エクセルで文字が混じった数字...
-
Excel 文字列を結合するときに...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
エクセルの並び変えで、空白セ...
-
エクセルで最初のスペースまで...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
エクセルで、列の空欄に隣の列...
-
VBAで文字列を数値に変換したい
-
Excel、市から登録している住所...
-
エクセル 文字数 多い順 並...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
エクセルで一列おきに空白列を...
-
エクセルのセル内の文字の一部...
-
VBA 連続行データを5行ずつ隣の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルのセル内の文字の一部...
-
【VBA】特定列に文字が入ってい...
-
Excel、市から登録している住所...
-
文字列に数字を含むセルを調べたい
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
おすすめ情報