|
初めて投稿します。
至らぬ点があればご指摘ください。
よろしくお願い致します。
【質問】
フォーム上にラベルT1〜T30があったとします。
ラベルをクリックすることでキャプションをメッセージボックスで表示
するようにする場合、
Private Sub T1_Click()
MsgBox Me.T1.Caption
End Sub
というプロシージャをT1〜T30まで個別に記述したのでは大変ですから、
Private Sub Form_Open(Cancel As Integer)
For i = 1 To 30
Me("T" & i).OnClick = "=msg(" & i & ")"
Next i
End Sub
Private Function msg(n As Integer)
MsgBox Me("T" & n).Caption
End Function
このようにフォームオープン時に一括設定にできますよね。
これをClickイベントではなくMouseDownイベントで引数を取得したい場合は
どのように記述すれば良いのでしょうか。
たとえばShiftを押しながら右クリックした場合にMsgBoxを出すようにします。
個別に記述すると下記のようになります。
Private Sub T1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 2 Then
MsgBox Me.T1.Caption
End If
End Sub
これを前述のOnClickのように纏めて設定するようにしたいのですが、
引数の部分をどのように記述すれば良いかがわかりませんでした。
引数なしで書くと下記のような感じです。
Private Sub Form_Open(Cancel As Integer)
For i = 1 To 30
Me("T" & i).OnMouseDown = "=msg(" & i & ")"
Next i
End Sub
色々と検索してみたのですが、調べ方が悪いのかどうしても
該当する情報に辿りつけませんでした。
ご教示いただければ幸いです。
どうぞ宜しくお願いいたします。
|
|