Método Style.GetResults (Visio)
Obtém os resultados ou fórmulas de várias células.
Sintaxe
expression. GetResults
( _SRCStream()_
, _Flags_
, _UnitsNamesOrCodes()_
, _resultArray()_
)
Expressão Uma variável que representa um objeto Style .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
SID_SRCStream() | Obrigatório | Integer | Uma matriz que identifica as células a serem consultadas. |
Flags | Obrigatório | Integer | Sinalizadores que influenciam o tipo de entradas retornadas nos resultados. |
UnitsNamesOrCodes() | Obrigatório | Variantes | Uma matriz de unidades de medida nas quais os resultados devem ser retornados. |
resultArray() | Obrigatório | Variantes | Parâmetro externo. Uma matriz que recebe os resultados ou as fórmulas das células consultadas. |
Valor de retorno
Nada
Comentários
O método GetResults é como a propriedade Result para o objeto Cell, exceto que ele pode ser usado para obter os resultados (valores) de várias células de uma vez, em vez de uma célula por vez.
Para objetos Style, você pode usar o método GetResults para obter resultados de qualquer conjunto de células.
SID_SRCStream() é uma matriz de números inteiros de 2 bytes. Para objetos Style , SID_SRCStream() deve ser uma matriz unidimensional de 3 n 2 bytes inteiros para n>= 1. O método GetResults interpreta SID_SRCStream() 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.
O argumento Flags indica em quais tipos de dados os resultados devem ser expressos. Seu valor deve ser um dos seguintes.
Constant | Valor | Descrição |
---|---|---|
visGetFloats | 0 | Resultados retornados como duplas (VT_R8). |
visGetTruncatedInts | 1 | Resultados retornados como números inteiros longos truncados (VT_I4). |
visGetRoundedInts | 2 | Resultados retornados como números inteiros longos arredondados (VT_I4). |
visGetStrings | 3 | Resultados retornados como sequências de caracteres (VT_BSTR). |
visGetFormulas | 4 | Fórmulas retornadas como sequências de caracteres (VT_BSTR). |
visGetFormulasU | 5 | Fórmulas retornadas em sintaxe universal (VT_BSTR). |
O argumento UnitsNamesOrCodes() é uma matriz que controla em quais unidades de medida resultados individuais são retornados. Cada entrada na matriz pode ser uma sequência de caracteres como "polegadas", "polegada", "pol." ou "p". As sequências de caracteres podem ser usadas para todas as unidades do Visio com suporte, como centímetros, metros, milhas e assim por diante. Você também pode indicar as unidades desejadas com constantes de números inteiros (visCentimeters, visInches e assim por diante) declaradas pela biblioteca de tipos do Visio. Observe que os valores especificados na matriz UnitsNamesOrCodes() não terão efeito se Flags for visGetFormulas.
Se UnitsNamesOrCodes() não for nulo, o aplicativo espera que ele seja uma matriz unidimensional de 1 <= uVariants. Cada entrada pode ser um código de número inteiro ou sequência de caracteres, ou vazio (nada). Se a entrada i 'th estiver vazia, o resultado i 'th retornado será retornado nas unidades designadas por UnitsNamesOrCodes(j), onde j é o índice da entrada anterior não vazia mais recente. Assim, se desejar que todos os valores retornados estejam nas mesmas unidades, você precisará apenas passar uma matriz UnitsNamesOrCodes() com uma entrada. Se não houver nenhuma entrada anterior não vazia ou se nenhuma matriz UnitsNameOrCodes() for fornecida, visNumber (0x20) será usado. Isso faz unidades internas (como a propriedade ResultIU de um objeto Cell) serem retornadas.
Se o método GetResults obtiver êxito, os resultados retornarão uma matriz unidimensional com n variantes indexadas de zero (0) a n - 1. O tipo de variantes retornadas é uma função de Flags. resultArray() é um parâmetro externo alocado pelo método GetResults, que passa a propriedade de volta ao chamador. Por fim, o chamador deve executar SafeArrayDestroy na matriz retornada. Observe que SafeArrayDestroy possui o efeito colateral de limpar as variantes referenciadas pelas entradas da matriz, desfazendo assim a alocação das sequências de caracteres que o método GetResults retorna. (O Microsoft Visual Basic e o Microsoft Visual Basic for Applications cuidam disso para você.)
Exemplo
O exemplo a seguir mostra como usar o método GetResults. Esse exemplo presume que haja uma página ativa com pelo menos três formas. Ele usa o método GetResults para obter a largura da forma 1, a altura da forma 2 e o ângulo da forma 3.
Este exemplo usa o método GetResults 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 GetResults_Example()
On Error GoTo HandleError
Dim intCounter As Integer
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
'Get first two values in inches. The second element in
'the units array is left uninitialized (empty) because we
'want the second result in the same units as the first
'result. The third result is initialized in degrees. Note that
'units can be expressed as a string or an integer constant.
Dim avarUnits(1 To 3) As Variant
avarUnits(1) = "in."
avarUnits(3) = visDegrees
'Return results of cells as an array of floating point numbers.
Dim avarResults() As Variant
ActivePage.GetResults aintSheetSectionRowColumn, visGetFloats, _
avarUnits, avarResults
For intCounter = 0 To 3
Debug.Print avarResults(intCounter)
Next
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.