[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定文字列を含むセル検索』(代理人)
久しぶりに質問させていただきます。
特定エリア(ex.Range("D2:CZ1000"))内で、特定の文字列(ex."5-AB")を含むセルを検索し、
複数あるうちのどのセルでも良いので、セルの行番号と列番号(ex.Cells(行番号,列番号)と使える)
を取得するにはどうすればできるでしょうか。
以上よろしくご教授願います。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
参考HPです。
Findメソッド(Find,FindNext,FindPrevious)|ExcelマクロVBA入門 http://excel-ubara.com/excelvba1/EXCELVBA398.html (カリーニン) 2016/09/22(木) 20:04
方法は色々あるんでしょうけど、前後関係が見えないので無難に関数化してみました。 (その為、割と「コイツめんどくさいな」っていう部類の回答例となってしまうでしょう)
Private Function FindRC(ByVal Target As Range, ByVal FindString As String, Res() As Variant) As Long
If Target Is Nothing Then Exit Function
Dim v() As Variant, r As Long, c As Long
v = Target.Value
For r = 1 To Target.Rows.Count
For c = 1 To Target.Columns.Count
If v(r, c) Like "*" & FindString & "*" Then
FindRC = FindRC + 1
ReDim Preserve Res(1 To 3, 1 To FindRC)
Res(1, FindRC) = Target.Cells(r, c).Row
Res(2, FindRC) = Target.Cells(r, c).Column
Res(3, FindRC) = v(r, c)
End If
Next
Next
End Function
Sub test()
Dim Ra As Range, Rtn As Long, i As Long, ResAry() As Variant
Set Ra = [D2:CZ1000]
Rtn = FindRC(Ra, "5-AB", ResAry)
Debug.Print Rtn & "個検出"
If Rtn > 0 Then
For i = 1 To Rtn
Debug.Print "Cells(" & ResAry(1, i) & ", " & ResAry(2, i) & ")", "Value:=" & ResAry(3, i)
Next
End If
End Sub
(白茶) 2016/09/22(木) 20:10
参考HPのご紹介ありがとうございました。これを使えばできそうですので、トライしてみます。
白茶様
実践的な事例をご紹介いただきありがとうございました。是非活用させていただきます。
(代理人) 2016/09/23(金) 08:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.