回答編集履歴

2

コードの追加

2018/06/04 06:36

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -37,3 +37,39 @@
37
37
  ちなみに、クラスモジュールを使えるのは、ActiveXコントロールのボタンになります。
38
38
 
39
39
  フォームコントロールのボタンの場合は、簡単に一つのマクロを複数のボタンに登録できます。
40
+
41
+
42
+
43
+ おまけ
44
+
45
+ ---
46
+
47
+ シートが多いので Select Case が長くなる、シートの追加、削除が発生する、というようなときは、
48
+
49
+ Application.Caller と AlternativeText を使って下記のようにするととメンテナンスが楽になります。
50
+
51
+
52
+
53
+ ```vba
54
+
55
+ Sub search_Click()
56
+
57
+ Dim rngs
58
+
59
+ rngs = Split(ActiveSheet.Shapes(Application.Caller).AlternativeText, ",")
60
+
61
+
62
+
63
+ Call search(rangs(0), rangs(1))
64
+
65
+ End Sub
66
+
67
+ ```
68
+
69
+ ボタンの書式設定の「代替テキスト」に
70
+
71
+ A1:I1, A1:I2
72
+
73
+ と対象のセル範囲を設定しておきます。
74
+
75
+ シートを追加したり、シート名を変更してもコードの修正は不要になります。

1

コード修正

2018/06/04 06:36

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -10,33 +10,27 @@
10
10
 
11
11
 
12
12
 
13
-
14
-
15
13
  ```vba
16
14
 
17
15
  Sub search_Click()
18
16
 
19
- With ActiveSheet
17
+ Select Case ActiveSheet.Name
20
18
 
21
- Select Case .Name
19
+ Case "Parts", "Device"
22
20
 
23
- Case "Parts", "Device"
21
+ Call search("A1:I1", "A1:I2")
24
22
 
25
- Call search("A1:I1", "A1:I2")
23
+ Case "After"
26
24
 
27
- Case "After"
25
+ Call search("A1:E1", "A1:E2")
28
26
 
29
- Call search("A1:E1", "A1:E2")
30
-
31
- End Select
27
+ End Select
32
-
33
- End With
34
28
 
35
29
  End Sub
36
30
 
37
31
  ```
38
32
 
39
-
33
+ シート名は、"Parts", "Device", "After" と推定しています。
40
34
 
41
35
 
42
36