(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
No.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
完璧です。ありがとうございます。
クラスモジュールとイベントのトラップは使用したことがなかったのでこれから勉強します。
また何かあったらお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい
Visual Basic(VBA)
-
Excel VBA 動的に作成したチェックボックスにイベントを追加したい
Excel(エクセル)
-
ユーザーフォームで動的(Me.Controls.Add)に作成したコントロールの削除
Visual Basic(VBA)
-
-
4
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
複数シートのボタンに同一の動作をさせたい
Excel(エクセル)
-
7
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
8
VBA オプションボタンを自動作成するには?
Visual Basic(VBA)
-
9
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
10
Excel VBA ワークシートに貼られたボタン名(Caption)をセルの値から取得するには
その他(プログラミング・Web制作)
-
11
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
12
エクセルユーザーフォームのチェックボックスのCaptionにセルの値を入れたい。
Excel(エクセル)
-
13
Calculateイベントでセルを指定したい
Word(ワード)
-
14
VBA Shapes コピーと名前
Excel(エクセル)
-
15
オブジェクト名をVBAで指定する方法を教えてくださ
PowerPoint(パワーポイント)
-
16
UserForm1.Showでエラーになります。
工学
-
17
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
18
VBA ユーザーフォーム上のチェックボックスの合計を別シートに標示させるには?
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
【ExcelVBA】動的にボタン、ボタン名を生成できますか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPS警告音を止めたい
-
Excelシート上のマクロを登録し...
-
Excel ラジオボタンのリセット...
-
エクセルの画面にユーザーフォ...
-
エクセルで、オプションボタン...
-
Accessのフォームでタブの色
-
ボタンを画像で作るか、CSSでデ...
-
EXCELのマクロが 実行時エラー5...
-
エクセルでマクロボタンを押す...
-
オブジェクト名をVBAで指定...
-
【Excel VBA】マクロボタンを表...
-
複数CSVファイルを一括インポート
-
エクセルでグループボックスを...
-
Access VBAでボタンの背景色を...
-
VBAでオプションボタンなどそれ...
-
ペアーズを利用しようと メッセ...
-
Accessについてです。
-
入力済み、選択したセルに連動...
-
マクロ初心者です。 msgboxのre...
-
excel スクロールしても常にボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
UPS警告音を止めたい
-
エクセルで、オプションボタン...
-
マクロで作ったボタンのサイズ...
-
ユーザーフォームをショートカ...
-
Excel ラジオボタンのリセット...
-
複数シートのボタンに同一の動...
-
Excelで、ボタンにコメントをつ...
-
【Excel VBA】マクロボタンを表...
-
マクロ初心者です。 msgboxのre...
-
入力済み、選択したセルに連動...
-
Accessのフォームでタブの色
-
フォームコントロールから作っ...
-
EXCELのマクロが 実行時エラー5...
-
EXCELの塗りつぶしのボタ...
-
excel スクロールしても常にボ...
-
コンボボックスウィザードが出...
-
Access VBAでボタンの背景色を...
-
エクセルでマクロボタンを押す...
おすすめ情報