「順番に選択したい。」というのが具体的にどのようなことなのか、よく分からないので、
とりあえず、数字が入っている(数字が含まれている)セルの背景色を赤にするコードです。
vba
1Sub Sample()
2 Dim c As Range
3 For Each c In ActiveSheet.UsedRange
4 If Application.Evaluate("COUNT(FIND({0,1,2,3,4,5,6,7,8,9}," & _
5 c.Address & "))") > 0 Then
6 c.Interior.ColorIndex = 3
7 End If
8 Next
9End Sub
コメントより
シート上にコマンドボタンが配置されていて、それをクリックすると最初の数字を含むセルを選択(Activate)。
次に、コマンドボタンをクリックすると次の数字を含むセルを選択。
・・・
上記の仕様でのコード例
シート上にActiveXのコマンドボタンを配置。
シートモジュールに下記のコードを記述する。
vba
1Option Explicit
2Private idx As Long
3
4Private Sub CommandButton1_Click()
5 Dim i As Long
6 With ActiveSheet.UsedRange
7 If idx = 0 Or idx >= .Count Then idx = 1
8 For i = idx To .Count
9 If Application.Evaluate("COUNT(FIND({0,1,2,3,4,5,6,7,8,9}," & .Item(i).Address & "))") > 0 Then
10 .Item(i).Activate
11 Exit For
12 End If
13 Next
14 idx = i + 1
15 End With
16End Sub
コマンドボタンをクリックするたびに数値を含むセルを順番に選択していきます。
最後までいったら、もう一度クリックすると最初からまた選択していきます。
追記
コメントより
ちなみに横列で検索していく動きになってますが、縦列で検索していく事は可能でしょうか?
vba
1Option Explicit
2Private idx As Long
3
4'縦移動
5Private Sub CommandButton1_Click()
6 Dim r As Long, c As Long, i As Long
7 With UsedRange
8 If idx = 0 Or idx >= .Count Then idx = 1
9 For c = 1 To .Columns.Count
10 For r = 1 To .Rows.Count
11 i = i + 1
12 If i < idx Then
13 ElseIf Application.Evaluate("COUNT(FIND({0,1,2,3,4,5,6,7,8,9}," & .Item(r, c).Address & "))") > 0 Then
14 .Item(r, c).Activate
15 GoTo ExitFor
16 End If
17 Next
18 Next
19ExitFor:
20 idx = i + 1
21 End With
22End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 04:34
2021/10/31 04:45
2021/10/31 05:21
2021/10/31 07:01
2021/10/31 13:00