[[20090428144242]] 『複数あるコマンドボタンを一括で押す』(やまだ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数あるコマンドボタンを一括で押す』(やまだ)
 宜しくお願いします。
 100枚シートがあります。Sheets("1")〜Sheets("100")です。
 各シートに
 Sub CommandButton1_Click()
       :
 End Sub
 があります。
 別シートSheets("TOP")のCommandButton2を押すと、全てのシートのボタンを一括で
 押したいのですがどうすればよいでしょうか?
 よろしくおねがいします。

 CommandButton2を押すと走るプロシージャの中でCallしたらどうですか?

 Sub CommandButton2_Click()
   Call CommandButton1_Click
 End Sub

 (Dil)

 TOPというシートのモジュールに

 Private Sub CommandButton2_Click()
    Dim g0 As Long
    For g0 = 1 To 100
       With Worksheets(CStr(g0))
          .CommandButton1.Value = True
       End With
    Next
 End Sub

 こういうことですか?

 ichinose


CommandButton1_Clickの定義を
Publicに変えれば次のコードでいけます。

Private Sub CommandButton2_Click()

 Dim sh As Excel.WorkSheet
 Dim strAct As String
 For each sh in Sheets
   If sh.Name <> "TOP" Then 'この分岐要らん?
     strAct = sh.CodeName & _
       ".CommandButton1_Click"
     Application.Run strAct
   End If
 Next sh
End Sub

Privateメンバを外部参照する方法
ならあきらめましょう(^^;

minato


 >Privateメンバを外部参照する方法ならあきらめましょう(^^; 

 ん? 
 コマンド ボタン (CommandButton) コントロールでは、
 マクロまたはプロシージャを通じて Value プロパティに真 (True) を設定すると、
 Click イベントが発生します。 helpより

 ですから、PrivateでもコマンドボタンのClickイベントなら可能ですよ!!

 ichinose


To:ichinose

これは失礼しました。
シートにコードを埋め込むコーディングで失敗したことがあり
主観が入ってイヤミにも取れる書き込みをしてしまいました。
悪意はありません。

そちらの方が既存コードを活かせますし簡潔でいいですね。
勉強になりました。ありがとうございます。

minato


 できました!
 みなさんどうもありがとうございました。
 (やまだ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.