Compartir a través de


Método Page.GetFormulasU (Visio)

Devuelve las fórmulas de varias celdas.

Sintaxis

expresión. GetFormulasU( _SID_SRCStream()_ , _formulaArray()_ )

Expresión Variable que representa un objeto Page .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
SID_SRCStream() Obligatorio Integer Secuencia que identifica las celdas cuyas fórmulas se desean obtener.
formulaArray() Obligatorio Variant Parámetro de salida. Matriz que recibe las fórmulas de las celdas consultadas.

Valor devuelto

Nothing

Comentarios

El método GetFormulasU es como la propiedad FormulaU de un objeto Cell , excepto que puede usarlo para obtener las fórmulas de muchas celdas a la vez, en lugar de una celda a la vez. El método GetFormulasU es una especialización del método GetResults, que se puede utilizar para obtener fórmulas o resultados de celdas. La configuración de una llamada al método GetFormulasU conlleva algo menos de trabajo que la configuración del método GetResults.

Use el método GetFormulasU para obtener fórmulas en la sintaxis universal de cualquier conjunto de celdas de cualquier conjunto de formas de la página o del patrón.

SID_SRCStream() es una matriz de enteros de 2 bytes. SID_SRCStream() debe ser una matriz unidimensional de 4 n enteros de 2 bytes para n>= 1. El método GetFormulasU interpreta SID_SRCStream() como:

{sheetID, sectionIdx, rowIdx, cellIdx}n

donde sheetID es la propiedad ID del objeto Shape de la página o el patrón cuya fórmula de celda se desea obtener.

Nota:

Si sheetID de una entrada es visInvalShapeID (-1) o si el byte inferior de sectionIdx es visSectionInval (255), la entrada se omitirá y se devolverá una variante vacía en la entrada de matriz de resultados correspondiente. La razón para esto es que se puede utilizar la misma matriz SID_SRCStream en varias llamadas a los métodos GetFormulasU, SetFormulas y similares; el llamador sólo necesitará realizar pequeñas modificaciones a la secuencia entre llamadas.

Si el método GetFormulasU se ejecuta correctamente, formulaArray() devuelve una matriz unidimensional de n valores de tipo Variant indizados desde 0 hasta n - 1. Cada uno de estos valores devuelve una fórmula en forma de cadena. formulaArray() es un parámetro de salida asignado por el método GetFormulasU, que pasa la propiedad de nuevo al llamador. El llamador deberá realizar finalmente el procedimiento SafeArrayDestroy en la matriz devuelta. Tenga en cuenta que el procedimiento SafeArrayDestroy tiene el efecto secundario de borrar los valores de tipo Variant a los que hacen referencia las entradas de la matriz, anulando la asignación de las cadenas devueltas por el método GetFormulasU. (Microsoft Visual Basic y Microsoft Visual Basic para Aplicaciones se encargan de esto). Se produce un error en el método GetFormulasU si formulaArray() es Null.

Nota:

A partir de Microsoft Visio 2000, puede usar nombres locales y universales para hacer referencia a formas, patrones, documentos, páginas, filas, complementos, celdas, hipervínculos, estilos, fuentes, accesos directos maestros, objetos de interfaz de usuario y capas de Visio. Cuando un usuario asigna un nombre a una forma, por ejemplo, el usuario especifica un nombre local. A partir de Microsoft Office Visio 2003, la hoja de cálculo ShapeSheet solo muestra nombres universales en fórmulas y valores de celda. (En versiones anteriores, los nombres universales no eran visibles en la interfaz de usuario).

Como programador, puede usar nombres universales en un programa cuando no desee cambiar un nombre cada vez que localice una solución. Utilice el método GetFormulas para obtener varias fórmulas cuando emplee la sintaxis local. Utilice el método GetFormulasU para obtener varias fórmulas cuando emplee la sintaxis universal.

Ejemplo:

La macro siguiente muestra cómo utilizar el método GetFormulasU. Se da por hecho que existe una página de Visio activa que contiene al menos tres formas. Utiliza GetFormulasU para obtener el ancho de la forma 1, el alto de la forma 2 y el ángulo de la forma 3.

En este ejemplo se usa el método GetFormulasU del objeto Page para obtener tres fórmulas de celda La matriz de entrada tiene cuatro ranuras para cada celda, como lo haría también para los objetos Master . En el caso de los objetos Shape o Style, sólo se necesitarían tres posiciones para cada celda (sección, fila y celda).

 
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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.