Método Shape.GetFormulas (Visio)
Retorna as fórmulas de várias células.
Sintaxe
expression. GetFormulas
( _SRCStream()_
, _formulaArray()_
)
Expressão Uma variável que representa um objeto Shape .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
SID_SRCStream() | Obrigatório | Integer | Um fluxo que identifica as células a serem consultadas. |
formulaArray() | Obrigatório | Variantes | Parâmetro externo. Uma matriz que recebe as fórmulas das células consultadas. |
Valor de retorno
Nada
Comentários
O método GetFormulas é como a propriedade Formula de um objeto Cell, exceto que você pode usá-lo para obter as fórmulas de várias células de uma vez, em vez de uma célula por vez. O método GetFormulas é uma especialização do método GetResults, que pode ser usado para obter resultados ou fórmulas de células. Configurar uma chamada para o método GetFormulas envolve um pouco menos de trabalho que configurar o método GetResults.
Para objetos Shape, você pode usar o método GetFormulas para obter fórmulas de qualquer conjunto de células.
SID_SRCStream() é uma matriz de números inteiros de 2 bytes. Para objetos Shape , SID_SRCStream() deve ser uma matriz unidimensional de 3 n 2 bytes inteiros para alguns n>= 1. GetFormulas interpreta o fluxo como:
{sectionIdx, rowIdx, cellIdx}n
onde sectionIdx é o índice da seção da célula desejada, rowIdx é seu índice de linha e cellIdx é seu índice de célula.
Se o método GetFormulas obtiver êxito, formulaArray() retornará uma matriz unidimensional com n variantes indexadas de 0 a n - 1. Cada variante retorna uma fórmula como uma sequência de caracteres. formulaArray() é um parâmetro externo alocado pelo método GetFormulas, que passa a propriedade de volta ao chamador. Por fim, o chamador deve executar o procedimento SafeArrayDestroy na matriz retornada. Observe que o procedimento SafeArrayDestroy tem o efeito colateral de limpar as variantes referenciadas pelas entradas da matriz, desfazendo assim a alocação as sequências de caracteres que o método GetFormulas retorna. (Microsoft Visual Basic e Visual Basic for Applications cuidar disso para você.) O método GetFormulas falhará se formulaArray() for Null.
Observação
A partir do Microsoft Visio 2000, você pode usar nomes locais e universais para se referir a formas, mestres, documentos, páginas, linhas, complementos, células, hiperlinks, estilos, fontes, atalhos mestre, objetos UI e camadas do Visio. Quando um usuário nomeia uma forma, por exemplo, o usuário está especificando um nome local. A partir do Microsoft Office Visio 2003, a planilha ShapeSheet exibe apenas nomes universais em fórmulas de células e valores. (Em versões anteriores, os nomes universais não eram visíveis na interface do usuário.).
Como desenvolvedor, você poderá usar nomes universais em um programa quando não quiser alterar um nome a cada vez que uma solução for localizada. Use o método GetFormulas para obter mais de uma fórmula ao usar a sintaxe local. Use o método GetFormulasU para obter mais de uma fórmula ao usar a sintaxe universal.
Exemplo
A macro a seguir mostra como usar o método GetFormulas. Ela presume que haja uma página do Microsoft Visio ativa com pelo menos três formas. Ela usa GetFormulas para obter a largura da forma 1, a altura da forma 2 e o ângulo da forma 3.
Este exemplo usa o método GetFormulas do objeto Page para obter três fórmulas de células. A matriz de entrada tem quatro slots para cada célula, como também teria para objetos Master. Para objetos Shape ou Style, apenas três slots seriam necessários para cada célula (seção, linha e célula).
Public Sub GetFormulas_Example()
On Error GoTo HandleError
Dim aintSheetSectionRowColumn(1 To (3 * 4)) As Integer
aintSheetSectionRowColumn(1) = ActivePage.Shapes(1).ID
aintSheetSectionRowColumn(2) = visSectionObject
aintSheetSectionRowColumn(3) = visRowXFormOut
aintSheetSectionRowColumn(4) = visXFormWidth
aintSheetSectionRowColumn(5) = ActivePage.Shapes(2).ID
aintSheetSectionRowColumn(6) = visSectionObject
aintSheetSectionRowColumn(7) = visRowXFormOut
aintSheetSectionRowColumn(8) = visXFormHeight
aintSheetSectionRowColumn(9) = ActivePage.Shapes(3).ID
aintSheetSectionRowColumn(10) = visSectionObject
aintSheetSectionRowColumn(11) = visRowXFormOut
aintSheetSectionRowColumn(12) = visXFormAngle
'Return the formulas of the cells.
Dim avarFormulaArray() As Variant
ActivePage.GetFormulas aintSheetSectionRowColumn, avarFormulaArray
Debug.Print "Shape 1 width is "; avarFormulaArray(0)
Debug.Print "Shape 2 height is "; avarFormulaArray(1)
Debug.Print "Shape 3 angle is "; avarFormulaArray(2)
Exit Sub
HandleError:
MsgBox "Error"
Exit Sub
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.