回答編集履歴
3
syuusei
answer
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
Private Sub prcButtonClick(ByVal viBtnNo As Integer)
|
24
24
|
If viBtnNo = 1 Then
|
25
|
-
Call
|
25
|
+
Call hogehoge
|
26
26
|
End If
|
27
27
|
|
28
28
|
'hogehoge以外の処理
|
2
tuiki
answer
CHANGED
@@ -2,4 +2,32 @@
|
|
2
2
|
|
3
3
|
ActiveXボタンの場合、例えば` CommandButton1`というボタン名ならクリックイベントは` CommandButton1_Click`というように、ボタン毎にクリックイベントが別れていると思います。
|
4
4
|
|
5
|
-
入り口(クリックイベント)が別れていますので、その時点で「CommandButton1が押された」という情報を覚えておけば、たとえその後共通関数が呼ばれたとしてもどの入口から入ってきたのか判別可能になると思いますが、どうでしょうか?
|
5
|
+
入り口(クリックイベント)が別れていますので、その時点で「CommandButton1が押された」という情報を覚えておけば、たとえその後共通関数が呼ばれたとしてもどの入口から入ってきたのか判別可能になると思いますが、どうでしょうか?
|
6
|
+
|
7
|
+
追記をうけて
|
8
|
+
---
|
9
|
+
おそらくCommandButton1_Clickには`hogehoge`を呼び出す以外の処理もあり、CommandButton2をクリックした際にはそのhogehoge以外の処理を同じように実行したい、ということだと思います。
|
10
|
+
こういう場合、共通で使用する処理は直接CommandButton1_Clickに記述せず、別関数とした方が扱いやすくなります。
|
11
|
+
|
12
|
+
下記のサンプルでは`CommandButton1_Click`の内容をそのまま`prcButtonClick`という別関数に載せ替え、hogehogeを実行するかどうかだけ呼び出し元によって切り分けるようにしています。
|
13
|
+
各ボタンでは、自分がどのボタンなのかを`prcButtonClick`関数に渡すようにしています。
|
14
|
+
```
|
15
|
+
Private Sub CommandButton1_Click()
|
16
|
+
Call prcButtonClick(1)
|
17
|
+
End Sub
|
18
|
+
|
19
|
+
Private Sub CommandButton2_Click()
|
20
|
+
Call prcButtonClick(2)
|
21
|
+
End Sub
|
22
|
+
|
23
|
+
Private Sub prcButtonClick(ByVal viBtnNo As Integer)
|
24
|
+
If viBtnNo = 1 Then
|
25
|
+
Call hogehoge1
|
26
|
+
End If
|
27
|
+
|
28
|
+
'hogehoge以外の処理
|
29
|
+
|
30
|
+
End Sub
|
31
|
+
```
|
32
|
+
|
33
|
+
参考になれば幸いです。
|
1
修正
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
この質問が出るのは「ActiveXコントロール」ではなく「フォームコントロール」のボタンをシート上に配置した場合の方が多いような気がしますが。
|
2
2
|
|
3
3
|
ActiveXボタンの場合、例えば` CommandButton1`というボタン名ならクリックイベントは` CommandButton1_Click`というように、ボタン毎にクリックイベントが別れていると思います。
|
4
|
+
|
4
|
-
入り口(クリックイベント)が別れていますので、たとえその後共通関数が呼ばれたとしてもどの入口から入ってきたのか
|
5
|
+
入り口(クリックイベント)が別れていますので、その時点で「CommandButton1が押された」という情報を覚えておけば、たとえその後共通関数が呼ばれたとしてもどの入口から入ってきたのか判別可能になると思いますが、どうでしょうか?
|