[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定文字列を含むセル検索』(代理人)
久しぶりに質問させていただきます。
特定エリア(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.