自分なりに検索してみましたが、解決策を発見できませんでしたので質問させて下さい。
Sheet1・・・セルA1~A5の任意の場所に"5"を入力します。
標準モジュールに、以下のコードを記入しました。
Sub test()
Dim i As Integer
i = Sheets("Sheet1").Range("A:A").Find(What:="5").Row
MsgBox i
End Sub
見ての通り、A列全体から、1行目を起点に"5"を上から順に検索し、
最初に見つかった行ナンバーをメッセージボックスに表示するマクロです。
このマクロを実行した際、以下のようなことが起こりました。
"5"を入力するセル / MsgBoxが表示する行番号
(1) 1、2、3行目 / 2
(2) 1、3行目 / 3
(3) 1行目 / 1
(4) 3、4、5行目 / 3
このように、(3)「1行目のみに検索対象が存在する場合」及び
(4)「2行目以降に複数件、検索対象が存在する場合」には
最初に見つかったセルの行番号を正しく返してくれるのですが、
(1)(2)「1行目とそれ以外の行に検索対象が存在する場合」には、
「2行目以降」で最初に見つかったセルの行番号が返ってきます。
これはEXCEL VBAの仕様なのでしょうか?
社内で利用するために作成したツールの一部に上記コードを組み込んでおり、
想定した通りに動いてくれずに困っております。
やりたいことは、A列全体から指定のキーワードが存在するセルを検索し、
1行目も含めて、最初に見つかったセルの行番号を取得することです。
ご助言頂けますよう、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Sub test2()
'Dim i As Integer
Dim i As Long 'の方が宜しいかも
With Sheets("Sheet1")
i = .Range("A:A").Find(What:="5", After:=.Range("A" & Rows.Count)).Row
End With
MsgBox i
End Sub
After:= で検索開始する位置を指定します。
⇒実際には指定セルの次に見つかったセルですので、A列の最終行を指定しておくとこの場合A1を最初に見つけてくれます。
ありがとうございます、よく分かりました。
今更ですが、VBAヘルプに記載されていましたね・・・
また何かありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
6
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
7
VBAで文字列を数値に変換したい
Excel(エクセル)
-
8
VBA 見つからなかった時の処理
Excel(エクセル)
-
9
1列目の何行目に検索文字があるかを取得したい
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
12
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
13
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
17
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
18
DATE型変数を初期化する方法
Visual Basic(VBA)
-
19
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
20
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
VBAでセルをクリックする回...
-
VBからEXCELのセルの値を取得す...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
【Excel】指定したセルの名前で...
-
Sub 要具ライフ() ActiveSheet....
-
任意フォルダから画像をすべて...
-
i=cells(Rows.Count, 1)とi=cel...
-
【VBA】飛び飛びの3セルに"完了...
-
Excel VBAで比較して数値があっ...
-
Excel VBA、 別ブックの最終行...
-
【Excel VBA】指定行以降をクリ...
-
TODAY()で設定したセルの日付...
-
エクセル(Excel) ワイルドカー...
-
EXCELで変数をペーストしたい
-
エクセルVBAで、シート上で結合...
-
ExcelのVBAで数字と文字列をマ...
-
VBAの計算で@が出てしまう件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報