VBA、マクロ に関する質問です。マクロの自動記録で、コントロールのボタンを押した動作を記録しようとしたらできませんでした。

仕方ないので、直接、マクロの中に書こうと思うのですが、どう書けばいいのでしょうか?
イベントを発生させればいいのではないかと思うのですが、書き方がわかりません。
マクロの中に、ここで、このボタンを押すという記述をしたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/09/14 15:18:28
  • 終了:2009/09/21 15:20:02

回答(3件)

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862009/09/14 15:26:38

ポイント27pt

Call ボタン1_Click()

のように記述します。

なお、「ボタン1_Click」はボタンのクリックイベントに割りついている関数です。


Option Explicit

'ボタンのクリックイベントで実行される関数
Sub ボタン1_Click()

End Sub

Sub テスト()
    'ボタンを押す動作
    Call ボタン1_Click()
End Sub 

id:maxpower No.2

MAXPOWER回答回数520ベストアンサー獲得回数242009/09/14 15:31:18

ポイント27pt

http://q.hatena.ne.jp/1252909106

URLはダミーです。

ボタンを押すという動作をコマンドで表すとすれば

"ボタン名".PerformClick() ではないでしょうか?

id:SALINGER No.3

SALINGER回答回数3454ベストアンサー獲得回数9692009/09/14 16:43:45

ポイント26pt

同じシートモジュールからならば呼び出すことはできますが、

マクロの記録などで使われる標準モジュールから、シートモジュールのコードを

Call CommandButton1_Click

のようにして呼び出すことはことはできません。

それは、シートモジュールがPrivateだからです。

逆にシートモジュールからなら標準モジュールのマクロを呼び出すことができますので、次のような方法をとります。

シートモジュール

Sub myComandButton1()
    Call myMacro
End Sub

標準モジュール

Sub test()
    Call myMacro
End Sub

Public Sub myMacro()
    '処理
End Sub

このようにすればボタンを押したときと、test()マクロが実行されたとき、同じ処理が実行されることになります。

http://q.hatena.ne.jp/

  • id:SALINGER
    回答で表記の紛らわしい部分がありました。
    正しくは
    シートモジュール
    Private Sub CommandButton1_Click()
      Call myMacro
    End Sub

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません