Propriedade Application.ActiveDocument (Visio)
Retorna o objeto Document ativo, que é o documento mostrado na janela ativa. Somente leitura.
Sintaxe
expressão. Activedocument
expressão Uma variável que representa um Aplicativo objeto.
Valor de retorno
Documento
Comentários
Quando não há documentos abertos, não há um documento ativo e a propriedade ActiveDocument retorna Nothing sem criar uma exceção.
Se o código estiver no projeto do Microsoft Visual Basic de um documento do Visio, a propriedade ActiveDocument geralmente, mas não necessariamente, retornará uma referência ao objeto ThisDocument , um módulo de classe no projeto Visual Basic de cada documento do Microsoft Visio. Se o objeto ThisDocument for mostrado na janela ativa, o objeto ActiveDocument e o objeto ThisDocument farão referência ao mesmo documento. Quando o objeto ThisDocument for referenciado no código de um projeto, ele retornará uma referência ao objeto Document do projeto.
A opção entre usar o objeto ActiveDocument ou o objeto ThisDocument depende da finalidade do seu código.
Você pode comparar o resultado retornado pela propriedade ActiveDocument com o valor Nothing para determinar se um documento está ativo. Se o valor da propriedade Documents.Count for maior que zero, pelo menos um documento estará aberto e ativo.
Se sua solução do Visual Studio incluir a referência Microsoft.Office.Interop.Visio , essa propriedade será mapeada para os seguintes tipos:
- Microsoft.Office.Interop.Visio.IVApplication.ActiveDocument
Exemplo
A seguinte macro do Microsoft Visual Basic for Applications (VBA) mostra duas maneiras seguras de obter um documento ativo (se existir). Em cada caso, ela imprime o nome do documento ativo na janela Imediato. O código obtém o documento ativo sem qualificação do objeto global do Visio, que está disponível automaticamente para o código VBA que faz parte do projeto VBA de um documento do Visio.
Public Sub ActiveDocument_Example()
Dim vsoDocument As Document
'First method
If Documents.Count > 0 Then
Set vsoDocument = ActiveDocument
Debug.Print vsoDocument.Name
Else
Debug.Print "No active document."
End If
'Second method
If Not(ActiveDocument Is Nothing) Then
Set vsoDocument = ActiveDocument
Debug.Print vsoDocument.Name
Else
Debug.Print "No active document."
End If
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.