Я написал два макроса в MS Visio. Первый макрос скрывает все слои, второй макрос выбирает определенный слой для отображения. Оба макроса работают нормально сами по себе, но когда я пытаюсь запустить первый макрос во втором макросе, я получил ошибку компиляции, что подпрограмма не может быть найдена. Есть идеи, как правильно вызвать частный саб?
Первая подпрограмма, скрывающая все слои: Private Sub Deselect_layers ()
Dim vsoPage As Visio.Page
Dim vsoShape As Visio.Shape
Dim vsoLayers As Visio.Layers
Dim vsoLayer As Visio.Layer
Set vsoPage = ActivePage
Set vsoLayers = vsoPage.Layers
For Each vsoLayer In vsoLayers
If vsoLayer.CellsC(visLayerVisible).FormulaU = "1" Then
vsoLayer.CellsC(visLayerVisible).FormulaU = "0"
End If
Next
End Sub
Второй подпункт, который показывает один конкретный слой:
Sub Select18()
Dim vsoPage As Visio.Page
Dim vsoShape As Visio.Shape
Dim vsoLayers As Visio.Layers
Set vsoPage = ActivePage
Set vsoLayers = vsoPage.Layers
RUNMACRO ("SelectLayers.Deselect_layers") <-- Error occurs here
vsoLayers.Item("18").CellsC(visLayerVisible).FormulaU = "1"
End Sub
Что я пробовал до сих пор:
RUNADDON ("ThisDocument.Deselect_layers")
RUNMACRO ("ThisDocument.Deselect_layers")
Callthis ("ThisDocument.Deselect_layers")
RUNADDON ("ThisDocument.SelectLayers.Deselect_layers")
RUNMACRO ("ThisDocument.SelectLayers.Deselect_layers")
Callthis ("ThisDocument.SelectLayers.Deselect_layers")
Ни одна из этих команд не сработала. Любая помощь будет очень приветствоваться!