プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、
例えば、1〜20行目までに"高校"という文字がある場合、その行を全て選択したいです。写真のコードではうまくいきません。。お願いいたします。(VBAスーパー初心者です。)

「エクセルVBAで、ある指定した文字を含む」の質問画像

A 回答 (3件)

3つの方法を考えてみました。


③は、Findメソッドを使ったものですが、省略スタイルはあまりよくないといいます。個人的には、②が一番、楽に取り扱えるように思います。

''①.
Sub FindWordinLine_01()
Dim r As Range
'1行目にタイトル行の代わりに、検索文字[高校]を置く
 Range("I:I").ColumnDifferences(Comparison:=Range("I1")).EntireRow.Hidden = True
 Set r = Range("I:I").SpecialCells(xlCellTypeVisible) Range("I:I").ColumnDifferences(Comparison:=Range("I1")).EntireRow.Hidden = False
 r.Select
End Sub

''②.
Sub FindWordinLine_02()
'1行目にタイトル行が必要です。
 Range("K2").FormulaLocal = "=COUNTIF(I2,""*高校*"")>0"
 Range("I:I").AdvancedFilter 1, Range("K1:K2")
End Sub

''③.
Sub FindWordinLine_03()
'出だしに決まりはありません。
 Dim first As String
 Dim rng As Range
 Dim uniRng As Range
 Dim c As Range
 Dim buf As String
 Range("I1").Select
 Set rng = Range("I1", Cells(Rows.Count, 9).End(xlUp))
 With rng
  Set c = .Find("*高校*")
  If Not c Is Nothing Then
   buf = c.Address
   Set uniRng = c
   Do
    If first = "" Then first = c.Address
    Set uniRng = Union(c, uniRng)
    Set c = .FindNext(c)
   Loop While Not c Is Nothing And first <> c.Address
  End If
 End With
 uniRng.Select
End Sub
    • good
    • 0

同じく 一例です。



Sub MacroRai()
'
Dim mk As Range
Dim mm As String
Set mk = Nothing
For i = 1 To 50
mm = Cells(i, 1).Value
For j = 2 To 50
mm = mm & Cells(i, j).Value
Next j

If mm Like "*高校*" Then
yy = i & ":" & i: c = c + 1
If c = 1 Then
Set mk = Range(yy)
Else
Set mk = Union(mk, Range(yy))
End If
End If
Next i
If c > 0 Then mk.Select
End Sub
    • good
    • 0

こんばんは!



「高校」という文字列が含まれていればよいのですね?
一例です。

Sub Sample1()
Dim i As Long, myRng As Range
For i = 1 To 20
If InStr(Cells(i, "I"), "高校") > 0 Then
If myRng Is Nothing Then
Set myRng = Cells(i, "I")
Else
Set myRng = Union(myRng, Cells(i, "I"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Select
Else
MsgBox "該当データなし"
End If
End Sub

こんな感じで大丈夫だと思います。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A