Excel VBA 質問スレッド №2009 (未解決)
同ブック内のsheet2の「更新ボタン」を押したら 「sheet1」の「更新」が押される様なイメージです。
投稿者 : Pin 投稿日時 : 2024/09/07(Sat) 06:37:47 OS : Windows 11 EXCEL : Office 365
同ブック内でAシートとBシートが有るとします。
エクセルのVBAで、Aシートのシート上のコマンドボタンを押すと
Bシートのシート上のコマンドボタンをクリックさせろという動きを
VBAでさせたいのですがどうしてもクリックさせることができません。
同ブック内でAシートとBシートが有るとします。
エクセルのVBAで、Aシートのシート上のコマンドボタンを押すと
Bシートのシート上のコマンドボタンをクリックさせろという動きを
VBAでさせたいのですがどうしてもクリックさせることができません。
スポンサーリンク
[返信 1] Re : 同ブック内のsheet2の「更新ボタン」を押したら 「sheet1」の「更新」が押される様なイメージです。
投稿者 : てらてら 投稿日時 : 2024/09/07(Sat) 07:53:36
こんにちは。
コマンドボタンには、登録するプログラム(マクロの登録)がされているはずなので、
Aシートのコマンドボタンを押した時に、
Bシートのコマンドボタンに登録されているプロシージャと同じものが実行されるように登録すれば良いだけだと思いますが、、、
こんにちは。
コマンドボタンには、登録するプログラム(マクロの登録)がされているはずなので、
Aシートのコマンドボタンを押した時に、
Bシートのコマンドボタンに登録されているプロシージャと同じものが実行されるように登録すれば良いだけだと思いますが、、、
[返信 2] Re : 同ブック内のsheet2の「更新ボタン」を押したら 「sheet1」の「更新」が押される様なイメージです。
投稿者 : tek 投稿日時 : 2024/09/07(Sat) 10:27:36
Google AI による概要
ボタンをクリックするには、マウスの左ボタンを「カチッ」と1回押してすぐに離します。この操作を「クリック」といいます。
これは、ボタンが可視状態でなければなりませんし、ボタンを押し離さなければなりません。
VBAでエミュレートするにはBシートをアクティブにし、APIでマウス操作をする必要があります。
但し、Bシートのシート上のコマンドボタンをクリックしたときと同じマクロを実施させるだけなら
シート名"Bシート"のシート上のコマンドボタンのクリックイベントプロシージャ名がPrivate Sub CommandButton1_Click()なら
で可能です。
Google AI による概要
ボタンをクリックするには、マウスの左ボタンを「カチッ」と1回押してすぐに離します。この操作を「クリック」といいます。
これは、ボタンが可視状態でなければなりませんし、ボタンを押し離さなければなりません。
VBAでエミュレートするにはBシートをアクティブにし、APIでマウス操作をする必要があります。
但し、Bシートのシート上のコマンドボタンをクリックしたときと同じマクロを実施させるだけなら
シート名"Bシート"のシート上のコマンドボタンのクリックイベントプロシージャ名がPrivate Sub CommandButton1_Click()なら
Private Sub CommandButton1_Click() Application.Run Worksheets("Bシート").CodeName & ".CommandButton1_Click" End Sub
で可能です。
[返信 3] Re : 同ブック内のsheet2の「更新ボタン」を押したら 「sheet1」の「更新」が押される様なイメージです。
投稿者 : F9 投稿日時 : 2024/09/07(Sat) 11:16:14
F9キー押せばいいじゃん
F9キー押せばいいじゃん
[返信 4] Re : 同ブック内のsheet2の「更新ボタン」を押したら 「sheet1」の「更新」が押される様なイメージです。
投稿者 : ピロリ 投稿日時 : 2024/09/07(Sat) 19:51:54
「Bシート」の CodeNameが「Sheet2」の前提で、下のような感じで起動できるかと。
ちなみに、VBEの VBAProjectが「Sheet2(Bシート)」の表示なら「Sheet2」が CodeNameです。
シートのプロパティでは、(オブジェクト名)の欄に表示されているのが CodeNameです。
手っ取り早いのは CommandButton.Value = True する方法でしょうか。
シート名を頻繁に変えるようなら、直接 CodeName指定で Runさせた方が良いかも知れません。
ご参考まで。
「Aシート」のシートモジュール
「Bシート」のシートモジュール
「Bシート」の CodeNameが「Sheet2」の前提で、下のような感じで起動できるかと。
ちなみに、VBEの VBAProjectが「Sheet2(Bシート)」の表示なら「Sheet2」が CodeNameです。
シートのプロパティでは、(オブジェクト名)の欄に表示されているのが CodeNameです。
手っ取り早いのは CommandButton.Value = True する方法でしょうか。
シート名を頻繁に変えるようなら、直接 CodeName指定で Runさせた方が良いかも知れません。
ご参考まで。
「Aシート」のシートモジュール
Private Sub CommandButton1_Click() '「Bシート」の CommandButton1_Clickの起動 'Worksheets("Bシート").CommandButton1_Click '←別モジュールの Private Sub なので不可 Application.Run Worksheets("Bシート").CodeName & ".CommandButton1_Click" 'Runその(1) Application.Run "Sheet2.CommandButton1_Click" '←Runその(2):直接 CodeName指定で・・・ Worksheets("Bシート").CommandButton1.Value = True '←CommandButton1.Value = True で・・・ '「Bシート」の CommandButton2_Clickの起動 Worksheets("Bシート").CommandButton2_Click '←別モジュールだが Public Sub なので可 End Sub
「Bシート」のシートモジュール
Private Sub CommandButton1_Click() '← Private Sub の場合 MsgBox "Bシート の CommandButton1 で~す" End Sub Public Sub CommandButton2_Click() '← Public Sub にした場合 MsgBox "Bシート の CommandButton2 で~す" End Sub
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 02:27:55 )