1

私は職場でかなり恐ろしいレガシー vba のメンテナンスを引き継いだところです。暇なときは、基本的に再構築して新しいテンプレートに書き直しています。ときどき、ある種の不具合を悪用して、VBE の 2 つの異なるインスタンスを同時に開くことができました。これを実現するために何をしたのか正確にはわかりませんが、私の生活がずっと楽になったので、他の誰かが知っているかどうか疑問に思っています. Word を新しいインスタンスとして実行していることが関係していると思いますが、仕事用 PC でファイルの種類の設定を変更できません。

編集: 私は通常、Excel にコピーして貼り付け、この方法で行いますが、仕事の他の部分でも多くの Excel マクロを使用するため、これは理想的ではありません

4

2 に答える 2

1

を使用Application.Runして別の VBA ホストでコードを実行したり、VBE間でコードにステップ インしたりできます。

Sub CallExcelUDFFromNonExcelHost()

  'Get an existing instance of Excel
  Dim appXL As Excel.Application
  Set appXL = GetObject(, "Excel.Application")

  'Get the already opened Excel workbook
  Dim wbk As Excel.Workbook
  Set wbk = appXL.Workbooks("MyExcelFunctions.xlsm")

  'Call the function in the Excel workbook
  Dim result
  result = appXL.Run(wbk.VBProject.Name & ".MyFunction", "Some Argument")

End Sub
于 2016-12-23T02:38:39.503 に答える
0

コードを使用して Word を開いてみます。

Dim ws As Object

Set ws = CreateObject("word.application")
ws.Visible = True

2 番目のインスタンスを取得する必要があります。

于 2010-06-29T10:01:52.677 に答える