- 締切済み
エクセルで何行目に入っているか知りたい
エクセルで所定の値が入っているセルが何行目なのかわかる方法はありますでしょうか。 A1ブランクA2○ B1×B2○ C1×C2△ となっていた場合、×は2行目、△は3行目といった内容です。 マクロでも関数でもお分かりになるかた教えてください。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kenpon24
- ベストアンサー率64% (66/102)
関数的に使いたいってことなら、こんな感じで サンプル2 Public Function test02(st As String) As Long Dim Row As Long Dim NowRange As Range 'この関数を自動再計算 Application.Volatile '現在のセル Set NowRange = ActiveCell If st = "" Then test02 = 0 Exit Function End If '検索 Row = Cells.Find(What:=st, After:=Range("A1"), LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Row 'A1に検索値があるときはスキップされるので対策 If Range("A1") = st Then Row = 1 test02 = Row NowRange.Activate End Function
- kenpon24
- ベストアンサー率64% (66/102)
マクロのFindメソッドが一番簡単ぽいですね。 サンプル Sub test() Static st As String Dim Row As Long st = InputBox("検索文字列", , st) If st = "" Then Exit Sub Range("A1").Activate '検索 Row = Cells.Find(What:=st, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Row 'A1に検索値があるときはスキップされるので対策 If Range("A1") = st Then Row = 1 MsgBox Row & "行目" End Sub
- imogasi
- ベストアンサー率27% (4737/17070)
(1)データが複数列に渉っていること。 (2)複数出現があるらしいこと。 が、関数MATCH関数で出来ない理由です。 これ以外の関数では適当なものが無い。 関数の複雑な組み合わせでの回答が、出るかな。 ーーー VBAではFind、FindNextで出来ますが、VBAでも中級以上のレベルの問題です。 ーー そのため なりふりかまわず(稚拙)、全セルをIFで聞く方法だと 標準モジュールに Sub test01() For Each cl In Application.InputBox("範囲指定=", Type:=8) If cl = "○" Then MsgBox cl.Address End If Next End Sub ーー 範囲を聞いてくるから、マウスで指定すると、○のセルの番地を個々に表示する。 この後の処理は不明なので、ここまで。
お礼
ご回答ありがとうございます。
補足
複数列に渉っていなければ、可能でしょうか。
- hayasi456
- ベストアンサー率40% (2402/5878)
ご希望のレベルではないでしょうが 検索で近いことが出来ます。 http://jewww.hss.shizuoka.ac.jp/library/excel.html そのセルを表示し「数式バー」にB1 C1 C2 と表示されます。
お礼
ありがとうございます。
お礼
ご回答ありがとうございます。
補足
初歩的ですいません。 判別した行数をメッセージボックスではなく、このマクロ内で定義する方法を教えていただけますでしょうか。 よろしくお願いいたします。