回答編集履歴

1

説明、コードの追記

2017/08/23 02:44

投稿

hatena19
hatena19

スコア33699

test CHANGED
@@ -19,6 +19,12 @@
19
19
  MT = UserForm1.ComboBox1.Value
20
20
 
21
21
  ```
22
+
23
+ コンボボックスの選択した値は、下記のコードでも同じ結果になりますが、上記の方がシンプルです。
24
+
25
+ `MT = ComboBox1.List(ComboBox1.ListIndex)`
26
+
27
+ ただしリストボックスの場合は、こちらの方法になります。
22
28
 
23
29
 
24
30
 
@@ -45,3 +51,77 @@
45
51
  ```
46
52
 
47
53
  とすべきですね。
54
+
55
+
56
+
57
+ 追記
58
+
59
+ ---
60
+
61
+ フォームの設計をみると Searchボタンが配置してあるので、これをクリックしたときに検索したいということだと思われます。 なので、標準モジュール(Module1)ではなく、検索するコードはこのコマンドボタンのクリック時に記述すべきですね。
62
+
63
+ ということで、UserForm1 のモジュールは下記のような感じになります。
64
+
65
+
66
+
67
+ ```
68
+
69
+ Option Explicit
70
+
71
+
72
+
73
+ 'Searchボタン
74
+
75
+ Private Sub CommandButton1_Click()
76
+
77
+ Dim X As Long, Y As Long
78
+
79
+ Dim HHP(6) As String, ECO(6) As String, AAA As String
80
+
81
+ Dim MT As String
82
+
83
+
84
+
85
+ MT = ComboBox1.Value
86
+
87
+ With ThisWorkbook.Worksheets("DATA")
88
+
89
+ With .Range("C2:J2").Find(waht:=MT)
90
+
91
+ X = .Row
92
+
93
+ Y = .Column
94
+
95
+ End With
96
+
97
+ '以下略
98
+
99
+
100
+
101
+ End With
102
+
103
+ End Sub
104
+
105
+
106
+
107
+ 'Closeボタン
108
+
109
+ Private Sub CommandButton2_Click()
110
+
111
+ Unload UserForm1
112
+
113
+ End Sub
114
+
115
+
116
+
117
+ Private Sub UserForm_Initialize()
118
+
119
+ ComboBox1.List = Range("C2:J2").Value
120
+
121
+ End Sub
122
+
123
+ ```
124
+
125
+ Searchボタンクリック時ではなく、コンボボックスで選択したら即検索したい場合は、Clickイベント`ComboBox1_Click()`に記述します。Changeイベントだと一文字入力しただけでも発生しますので、適切ではないですね。コンボボックスの場合、テキストに直接入力することを可能ですので。
126
+
127
+