誰かが VBA コードで私を助けてくれることを願っています。VBA ループを使用して、Excel のグラフ、テキスト ボックス、表を Powerpoint テンプレートに貼り付けます。ただし、ユーザーが Powerpoint Object Library をインストールするかどうか確信が持てないため、Dim PPTApp を Powerpoint.Application タイプの構文として使用することはできません。
オブジェクトを使用します。それはうまくいきます。1 つを除いて: Powerpoint を閉じます。
コード:
Dim oPPTPres As Object ' Late binding: This is a PowerPoint.Presentation but we cannot assume that the Microsoft PowerPoint 11 library will be loaded in the workbook that this module has been copied to.
Dim oPPTShape As Object ' Late binding: This is a PowerPoint.Shapebut we cannot assume that the Microsoft PowerPoint 11 library will be loaded in the workbook that this module has been copied to.
PPTFile = Range("PPTFile").value ' Read PowerPoint template file name
Set oPPTPres = GetObject(PPTFile): oPPTPres.Application.Visible = msoTrue ' Switch to or open template file
. . . .
strNewPresPath = Range("OutputFileName").value
oPPTPres.SaveAs strNewPresPath
' Range("PPTFile").value = strNewPresPath
ScreenUpdating = True
oPPTPres.Close 'Closes presentation but not Powerpoint
oPPTPres.Application.Quit 'No noticeable effect
アクティブなプレゼンテーションは閉じますが、Powerpoint 自体は開いたままです (ファイル ウィンドウは開いていません)。次に、それが開いているため、次のものが実行されると (ループしてこれらのビルドの多くを連続して実行するループがあります)、テンプレートと最新のビルドされた Powerpoint ファイルが開き、システムが作成されます。ロックの問題。
何か案は?
ご助力ありがとうございます!