1

VBA コードに問題があります。

私の仕事は、Visio 図面のディレクトリをスキャンし、埋め込まれた Excel オブジェクトを更新し、保存して閉じる VBA スクリプトを作成することです。

だから私はVBAサブを開発しました:

Dim m_visioApp as Object
Set m_visioApp = CreateObject("visio.application")


Sub UpdateVsdFile(filename As String)

    m_visioApp.Documents.Open (filename)

    For Each pageObj In m_visioApp.ActiveDocument.Pages
        For Each oleObj In pageObj.OLEObjects
            If InStr(oleObj.progID, "Excel.Sheet") > 0 Then
                oleObj.Object.Activate
                oleObj.Object.Application.Worksheets(1).Cells(1, 1) = "Something"
                Call oleObj.Object.RefreshAll
            End If
        Next
    Next

    m_visioApp.ActiveWindow.DeselectAll

    m_visioApp.ActiveDocument.SaveAsEx filename, visSaveAsListInMRU

    m_visioApp.ActiveDocument.Close

End Sub

何が機能していないか: - OLE オブジェクトの更新後に Visio 図面を保存する - Visio 図面を閉じる

Visio 2016 と Excel 2016 を使用しています。

私が間違っていることを確認するのに役立つ人はいますか? または、ここで何が欠けていますか?

4

0 に答える 0