|
有難うございました、セル位置の取得が出来ました。
また質問させて頂くときは宜しくお願いします。
▼ichinose さん:
>▼セボン さん:
>こんばんは。
>
>>1シート上のあるデータを検索して、そのデータが存在しているセル位置(R1,C1)を取得する方法を教えてください。※アクティブシェルの位置取得ではありません。
>>例えば、”a2014”という数値があるか検索、データがあることが判明し、かつそのセル位置を取得したいのです。
>>よろしくお願いします。
>
>
>Findメソッドを使用した例です。
>だいぶ前に作ったサブプロシジャーですが・・。
>アクティブシートが検索対象シートです。
>'=================================================
>Sub main()
> Dim f_value As Variant
> Dim find_cell As Range
> Dim cnt As Long
> cnt = 0
> f_value = "a2014" '検索する値を入れる"
> Set find_cell = get_findcell(f_value, ActiveSheet.Cells)
> Do While Not find_cell Is Nothing
> With find_cell
> MsgBox "見つかった : 行--" & .Row & " 列--" & .Column
> End With
> cnt = cnt + 1
> Set find_cell = get_findcell() '次の検索
> Loop
> MsgBox cnt & "個みつかりました"
>End Sub
>'==========================================================================
>Function get_findcell(Optional f_v As Variant = "", Optional rng As Range = Nothing, Optional 方法 As Long = 1) As Range
>'指定された値でセル範囲を検索し、該当するセルを取得する
>'input : f_v 検索する値
>' rng 検索する範囲
>' 方法: :検索方法 1-完全一致 2-部分一致
>'output:get_findcell 見つかったセル(見つからなかったときはNothingが返る)
> Static 検索範囲 As Range
> Static 最初に見つかったセル As Range
> Static 直前に見つかったセル As Range
> If Not rng Is Nothing Then
> Set 検索範囲 = rng
> End If
> If f_v <> "" Then
> Set get_findcell = 検索範囲.Find(f_v, , xlValue, 方法)
> If Not get_findcell Is Nothing Then
> Set 最初に見つかったセル = get_findcell
> Set 直前に見つかったセル = get_findcell
> End If
> Else
> Set get_findcell = 検索範囲.FindNext(直前に見つかったセル)
> If get_findcell.Address = 最初に見つかったセル.Address Then
> Set get_findcell = Nothing
> Else
> Set 直前に見つかったセル = get_findcell
> End If
> End If
>End Function
>
>確認してみて下さい。
|
|