アプリ版:「スタンプのみでお礼する」機能のリリースについて

(1)excel97にのVBAでフォームを作成します。
デフォルトの場合はUserForm1という名前がつきます。

(2)標準モジュールとして下記のコードを作成します。

Sub ボタンを付けて表示()
Dim btn As Control

 With UserForm1
   
  ’ボタンを"button"という名前で作成します
  Set btn = .Controls.Add("Forms.CommandButton.1", "button")

  ’ボタンの設定をします
  With btn
   .Top = 5
   .Left = 5
   .Height = 20
   .Width = 200
   .Caption = "push me!"
  End With

  ’フォームの設定をし、表示します
  .Height = 60
  .Width = 220
  .Show
 End With

End Sub

(3)マクロを実行するとフォームが表示されます。
そこでこのボタン("push me!"と表示されています)をクリックします。
このクリックを検知してマクロを動かしたいのですが可能でしょうか?

なおUserForm1に下記のコードを付けてみたのですがクリックは検知できませんでした。

Private Sub button_Click()
 MsgBox "You click the button."
End Sub

A 回答 (2件)

クラスモジュールを使用すると出来るのではないでしょうか。



----- 標準モジュール ---------

Dim NewBtn As New Class1 ' <------ 追加

Sub ボタンを付けて表示()
Dim btn As Control
With UserForm1
  Set btn = .Controls.Add("Forms.CommandButton.1", "button")
  With btn
    .Top = 5
    .Left = 5
    .Height = 20
    .Width = 100
    .Caption = "push me!"
  End With
  .Height = 60
  .Width = 220
  Set NewBtn.button = btn ' <---- 追加
  .Show
End With
End Sub

---- ↓ クラスモジュールに記述します。

Public WithEvents button As CommandButton

Private Sub button_Click()
  MsgBox "You click the button."
End Sub
    • good
    • 2
この回答へのお礼

完璧です。ありがとうございます。
クラスモジュールとイベントのトラップは使用したことがなかったのでこれから勉強します。
また何かあったらお願いします

お礼日時:2003/03/29 13:37

Private Sub button_Click()


ではなく

Private Sub CommandButton1_Click()



Private Sub Forms.CommandButton1_Click()

とかにしてみたらどうでしょうか?
    • good
    • 1
この回答へのお礼

早速試してみましたができませんでした(*_*)

お礼日時:2003/03/22 22:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A