teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード追記

2021/10/31 14:42

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -14,7 +14,7 @@
14
14
  ```
15
15
 
16
16
  ---
17
- コメントより
17
+ **コメントより**
18
18
  > シート上にコマンドボタンが配置されていて、それをクリックすると最初の数字を含むセルを選択(Activate)。
19
19
  次に、コマンドボタンをクリックすると次の数字を含むセルを選択。
20
20
  ・・・
@@ -43,4 +43,34 @@
43
43
  ```
44
44
 
45
45
  コマンドボタンをクリックするたびに数値を含むセルを順番に選択していきます。
46
- 最後までいったら、もう一度クリックすると最初からまた選択していきます。
46
+ 最後までいったら、もう一度クリックすると最初からまた選択していきます。
47
+
48
+ 追記
49
+ ---
50
+ **コメントより**
51
+ > ちなみに横列で検索していく動きになってますが、縦列で検索していく事は可能でしょうか?
52
+
53
+ ```vba
54
+ Option Explicit
55
+ Private idx As Long
56
+
57
+ '縦移動
58
+ Private Sub CommandButton1_Click()
59
+ Dim r As Long, c As Long, i As Long
60
+ With UsedRange
61
+ If idx = 0 Or idx >= .Count Then idx = 1
62
+ For c = 1 To .Columns.Count
63
+ For r = 1 To .Rows.Count
64
+ i = i + 1
65
+ If i < idx Then
66
+ ElseIf Application.Evaluate("COUNT(FIND({0,1,2,3,4,5,6,7,8,9}," & .Item(r, c).Address & "))") > 0 Then
67
+ .Item(r, c).Activate
68
+ GoTo ExitFor
69
+ End If
70
+ Next
71
+ Next
72
+ ExitFor:
73
+ idx = i + 1
74
+ End With
75
+ End Sub
76
+ ```

1

コード追記

2021/10/31 14:42

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -11,4 +11,36 @@
11
11
  End If
12
12
  Next
13
13
  End Sub
14
- ```
14
+ ```
15
+
16
+ ---
17
+ コメントより
18
+ > シート上にコマンドボタンが配置されていて、それをクリックすると最初の数字を含むセルを選択(Activate)。
19
+ 次に、コマンドボタンをクリックすると次の数字を含むセルを選択。
20
+ ・・・
21
+
22
+ 上記の仕様でのコード例
23
+ シート上にActiveXのコマンドボタンを配置。
24
+ シートモジュールに下記のコードを記述する。
25
+
26
+ ```vba
27
+ Option Explicit
28
+ Private idx As Long
29
+
30
+ Private Sub CommandButton1_Click()
31
+ Dim i As Long
32
+ With ActiveSheet.UsedRange
33
+ If idx = 0 Or idx >= .Count Then idx = 1
34
+ For i = idx To .Count
35
+ If Application.Evaluate("COUNT(FIND({0,1,2,3,4,5,6,7,8,9}," & .Item(i).Address & "))") > 0 Then
36
+ .Item(i).Activate
37
+ Exit For
38
+ End If
39
+ Next
40
+ idx = i + 1
41
+ End With
42
+ End Sub
43
+ ```
44
+
45
+ コマンドボタンをクリックするたびに数値を含むセルを順番に選択していきます。
46
+ 最後までいったら、もう一度クリックすると最初からまた選択していきます。