VBAで別シートの関数を呼び出す方法

前提

下記構成のエクセルファイルがある

  • シート

    • Sheets1
    • シート名: "シート1"
  • VBAの構成

    • Sheets1(シート1)のマクロ
Public Function SheetOneFunc()
    MsgBox "This is SheetOneFunc."
End Function

このとき標準モジュールから、SheetOneFunc()を呼び出したい

標準モジュールの関数の書き方

Sub Func()
    Application.Run ThisWorkbook.Worksheets("シート1").CodeName & ".SheetOneFunc"
End Sub

このコードでは、ThisWorkbook.Worksheets("シート1") を使って "シート1" シートにアクセスし、その後に CodeName と .CParamMakeXML を連結して、Application.Run を使って SheetOneFunc 関数を直接呼び出している。