3

10 個の XLS があり、それぞれに同じことを行う数百行の VBA が含まれています。この共通コードを 11 番目の XLS に移動し、他の 10 人に 11 番目の XLS のコードを呼び出してもらいたいと考えています。共通コードは、呼び出し元の XLS 内のすべてのデータとワークシートにアクセスできる必要があります。この最後の要件は、SOに関するこの質問に対する他の回答では対処されていないようです。呼び出し元の XLS のワークシートをパラメーターなどとして渡すことはできますか?

4

2 に答える 2

7

これをセカンダリ XLS ファイルに入れる代わりに、XLA ファイル (Excel アドイン) を作成することをお勧めします。

これは、XLA が意図した正確なシナリオです。この場合、XLA は意図したとおりに機能します。

XLA の作成の詳細については、このページを参照してください。

于 2009-07-07T16:07:44.823 に答える
3

はい、ワークブック、ワークシート、範囲などへの参照をパラメーターとして任意の関数に渡すことができます。

Public Sub CallMe(ByVal oWorkbook as Workbook)

    Dim oWorksheet as Worksheet
    Set oWorksheet = oWorkbook.Worksheets(1)

    ' Do stuff...

End Sub

10 個のワークブックからコピーした多くのコードを書き直す必要があることに注意してください。これらのワークブックは、「この」ワークブックへの暗黙的な参照などでいっぱいになるためWorksheets(1)です。上記の例のように、oWorkbook.Workbooks(1)代わりに言う。

于 2009-07-07T16:21:54.453 に答える