Método Page.GetFormulasU (Visio)
Retorna as fórmulas de várias células.
Sintaxe
expression. GetFormulasU
( _SID_SRCStream()_
, _formulaArray()_
)
Expressão Uma variável que representa um objeto Page .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
SID_SRCStream() | Obrigatório | Integer | 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 GetFormulasU é como a propriedade FormulaU de um objeto Cell , exceto que você pode usá-lo para obter as fórmulas de muitas células ao mesmo tempo, em vez de uma célula por vez. O método GetFormulasU é 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 GetFormulasU envolve um pouco menos de trabalho que configurar o método GetResults.
Use o método GetFormulasU para obter fórmulas na sintaxe universal de qualquer conjunto de células em qualquer conjunto de formas da página ou mestre.
SID_SRCStream() é uma matriz de números inteiros de 2 bytes. SID_SRCStream() deve ser uma matriz unidimensional de 4 n 2 bytes inteiros para n>= 1. O método GetFormulasU interpreta SID_SRCStream() como:
{sheetID, sectionIdx, rowIdx, cellIdx}n
onde sheetID é a propriedade ID do objeto Shape na página ou mestre cuja fórmula de célula é desejada.
Observação
Se o sheetID em uma entrada for visInvalShapeID (-1) ou se o byte inferior de sectionIdx for visSectionInval (255), a entrada será ignorada e uma variante vazia será retornada na entrada da matriz de resultados correspondente. O motivo para isso é que a mesma matriz SID_SRCStream() pode ser usada em várias chamadas para GetFormulasU, SetFormulas e métodos semelhantes, sendo necessário apenas que o chamador faça alterações mínimas no fluxo entre chamadas.
Se o método GetFormulasU 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 GetFormulasU, 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 GetFormulasU retorna. (Microsoft Visual Basic e Microsoft Visual Basic for Applications cuidar disso para você.) O método GetFormulasU 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 GetFormulasU. Ela presume que haja uma página do Visio ativa com pelo menos três formas. Ela usa GetFormulasU para obter a largura da forma 1, a altura da forma 2 e o ângulo da forma 3.
Este exemplo usa o método GetFormulasU do objeto Page para obter três fórmulas de célula A matriz de entrada tem quatro slots para cada célula, como também faria para objetos Mestre . Para objetos Shape ou Style, apenas três slots seriam necessários para cada célula (seção, linha e célula).
Public Sub GetFormulasU_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.GetFormulasU 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.