
自分なりに検索してみましたが、解決策を発見できませんでしたので質問させて下さい。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
エクセル VBA find は別シートを検索できますでしょうか?
Excel(エクセル)
-
4
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
5
【VBA】指定したセルと同じ値で、別シートにあるセルに移動するには?
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
VBAで空白セルにのみ数値を代入する方法
Excel(エクセル)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
【Find関数】あるのに見つからない。
Visual Basic(VBA)
-
10
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
11
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
12
VBAで条件が一致する行のデータを別シートに抽出
Excel(エクセル)
-
13
別のシートから値を取得するとき
Visual Basic(VBA)
-
14
'Range'メソッドは失敗しました
Excel(エクセル)
-
15
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
16
VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
特定のセルが空白だったら、そ...
-
5
任意フォルダから画像をすべて...
-
6
【Excel VBA】指定行以降をクリ...
-
7
Excel VBA、 別ブックの最終行...
-
8
連続する複数のセル値がすべて0...
-
9
EXCELで変数をペーストしたい
-
10
VBA 重複文字列 色付け
-
11
B列に特定の文字列が入っている...
-
12
VBAでマクロ実行中はExcelのマ...
-
13
EXCELのVBA-フィルタ抽出後の...
-
14
【VBA】シート上の複数のチェッ...
-
15
screenupdatingが機能しなくて...
-
16
DataGridViewの各セル幅を自由...
-
17
Google Apps Script:Googleスプ...
-
18
Excel VBAで、 ヘッダーへのセ...
-
19
実行時エラー438 オブジェクト...
-
20
特定の範囲内に空白セルがいく...
おすすめ情報
公式facebook
公式twitter