STDIN y STDOUT
Ingreso a Sub
rutinas y Function
s mediante variables de entrada
Public Sub A(ByRef B as String)
Puede reducirse a
Sub a(b$)
los Public
yByRef
llamadas son las predeterminadas para VBA y, por lo tanto, son implícitas, y pueden (casi) siempre descartarse.
El tipo literal $
obliga b
a ser del tipoString
.
Otros literales tipo
!
Soltero
@
Moneda
#
Doble
%
Entero
$
Cuerda
&
Largo
^
LongLong (solo 64 bits)
Además, generalmente se acepta que puede dejar la variable de entrada como el tipo predeterminado, Variant
y dejar los errores basados en el tipo sin controlar. P.ej. Sub E(F)
en el que F
se espera que sea de tipo Boolean[]
(que se pasaría a la rutina comoE Array(True, False, False)
)
Ingresando a Sub
rutinas y funciones de ventana inmediata a través deCells
VBA no tiene una consola completamente funcional y, por lo tanto, no tiene ningún STDIN oficial , y por lo tanto permite algunos juego con el paso de entrada.
En Excel, generalmente se acepta tomar datos de una celda o rango de celdas, lo que se puede hacer como
s=[A1]
que implícitamente pone el .value
de la celda [A1]
(que también puede ser referenciado como cells(1,1)
orange("A1")
Problema de ejemplo: mostrar la entrada en un cuadro de mensaje
Vía subrutina Sub A:msgbox[A1]:End Sub
Vía Función de ventana inmediata msgbox[A1]
Ingreso a través de argumentos de compilación condicional
Los proyectos de VBA admiten la toma de argumentos desde la línea de comandos o mediante las propiedades de VBAProject (ver a través del explorador de proyectos -> [Su proyecto de VBA] - (Clic derecho) -> Propiedades de VBAProject -> Argumentos de compilación condicional)
Esto es en gran medida útil para los desafíos de código de error
Dado el argumento de compilación condicional n=
[some_value], esto permite ejecutar código que producirá un código de error, basado en el valor de n
. tenga en cuenta que esto requiere una adición de 2 bytes a su código para la n=
sección de argumentos de compilación condicional del Panel de propiedades de VBAProject.
Código de ejemplo
...
#If n=3 then
return '' Produces error code '3', Return without GoSub
#ElseIf n=20 then
resume '' Produces error code '20', Resume without Error
#EndIf
...
Salida a través del valor de la función
No hay mucho que decir aquí, la forma general de citada a continuación es tan compacta como se puede hacer.
Public Function A(b)
...
A=C
End Function
NOTA: en la gran mayoría de los casos, es más byte convertir el método a una subrutina y enviarlo a la ventana de VBE inmediata (ver más abajo)
Salida desde Sub
rutinas Function
ys a través de la ventana Inmediatos de VBE
La salida a la ventana de inmediatos de VBE (también conocida como la ventana de depuración de VBE) es un método de salida común para VBA para desafíos basados en texto, sin embargo, es importante recordar que la Debug.Print "Text"
llamada puede ser sustancialmente mejorada.
Debug.Print "Text"
es funcionalmente idéntico a
Debug.?"Text"
como ?
autoformatos para Print
.
Salida de Sub
rutinas y funciones de la ventana Inmediato de VBE a través de otros métodos
En raras ocasiones, cuando la situación es correcta, puede recibir información de algunas de las entradas más triviales disponibles para VBA, como el ajustador de tamaño de fuente, el selector de fuente y el zoom. (Por ejemplo, emular el selector de tamaño de fuente de Word )