web-dev-qa-db-ja.com

VBAはサブに別のサブを実行させます

別のワークシートのモジュールに保存されているsubを実行する方法は?

worksheet1

sub endDay()
    'something here
end sub

worksheet2

sub reCalc()
    'something here
end sub

recalcを単独で実行できるようにしたいのですが、「endDay」のボタンを押して実行させ、最後に「recalc」を押す代わりに実行できるようにしたいです。次に、sheet2に移動してもう一方を押します。

誰かが私にサンプルをくれて、どこから始めればよいかを知ることができますか?

6
Stephan Daudt

ワークシートのコード名を確認してください。VisualBasicエディターのツリービューで確認できます。通常、これらの名前は_Sheet1_、_Sheet2_などです(括弧内に示されている実際のワークシート名とは関係ありません)。 Worksheets("Sheet1")の代わりにこの名前をコードで使用すると、オートコンプリートリストも取得されます-サブで!

したがって、これは仕事をします:

 Sheet1.reCalc 
12
Peter Albert
sheets("worksheet2").reCalc

あなたが求めているものかもしれません

7
Rick

2年後のことは知っていますが、今日も同じものを探していました。ワークシートの潜水艦が非公開である限り、これは良い解決策です。

Sub Maina()
    Run "tbl_Input.btn_main_Click"
End Sub

tbl_InputはワークシートのVBA名であり、キャプションではありません。

2
Vityata

Call Module1.reCalc SubがModule1にある場合は、同様に機能するはずです。 'Module1'は不要な場合があります。とはいえ。

1
icebird76