Site icon Amelt.net

Excel:VBAで複数の関数をひとつにまとめる方法

This post is also available in: 日本語 (Japanese)

ExcelVBAを使っていて、複数の関数をひとつにまとめたい場合のサンプルコードです。
Excelのフォームコントロールボタンにマクロを割り当てる際に、関数をひとつにまとめて、ボタンをクリックすると複数の関数を実行したい等の場合に必要です。

Excelの Visual Basic Editor に以下の名前のシートと、関数があると仮定します。
ExcelのSheet1のシート名がSampleSheet01で、SampleFunc01()という関数があるという意味で、Sheet2,Sheet3も同様です。

Sheet1(SampleSheet01),SampleFunc01()
Sheet2(SampleSheet02),SampleFunc02()
Sheet3(SampleSheet03),SampleFunc03()

以下の Matomeru() 関数をどのシートでも良いので用意して、フォームコントロールボタンにマクロを割り当てると、Matomeru() 関数が実行され、SampleFunc01(),SampleFunc02(),SampleFunc03()が実行されるかと思います。
また、Call でシートの関数を呼び出す方法には他の書き方もありますので、調べてみてください。

Sub Matomeru()
 Call Sheets("Sheet1").SampleFunc01
 Call Sheets("Sheet2").SampleFunc02
 Call Sheets("Sheet3").SampleFunc03
 MsgBox "OK!"
End Sub

Sheet1,Sheet2,Sheet3の代わりに、それぞれのシート名でも呼び出すことが可能です。

Sub Matomeru()
 Call Sheets("SampleSheet01").SampleFunc01
 Call Sheets("SampleSheet02").SampleFunc02
 Call Sheets("SampleSheet03").SampleFunc03
 MsgBox "OK!"
End Sub