STDIN e STDOUT
Introdução a Subrotinas Functiones através de variáveis de entrada
Public Sub A(ByRef B as String)
Pode ser reduzido para
Sub a(b$)
O PubliceByRef chamadas são o padrão para o VBA e, portanto, implícitas, e podem (quase) sempre ser descartadas.
O tipo literal $força ba ser do tipoString .
Outros literais de tipo
! solteiro
@ Moeda
# Duplo
% Inteiro
$ Corda
& Grandes
^ LongLong (somente 64 bits)
Além disso, é geralmente aceito que você possa deixar a variável de entrada como o tipo padrão Variante deixar os erros baseados em tipo sem tratamento. Por exemplo. Sub E(F)no qual Fse espera que seja do tipo Boolean[](que seria passado para a rotina comoE Array(True, False, False) )
Introdução a Subrotinas e funções imediatas da janela viaCells
O VBA não tem um console totalmente funcional e, portanto, não tem qualquer oficial STDIN, e, portanto, permite a alguns jogadas com entradas passantes.
No Excel, geralmente é aceito receber informações de uma célula ou intervalo de células, o que pode ser feito como
s=[A1]
que coloca implicitamente o .valueda célula [A1](que também pode ser referenciado comocells(1,1) ourange("A1")
Exemplo de problema: Exibir a entrada em uma caixa de mensagens
Via Sub-rotina Sub A:msgbox[A1]:End Sub
Via janela Função msgbox[A1]
Introdução através de argumentos de compilação condicional
Os Projetos VBA suportam a tomada de argumentos na linha de comando ou nas Propriedades do VBAProject (veja através do explorador de projeto -> [Seu projeto VBA] - (Clique com o botão direito do mouse) -> Propriedades do VBAProject -> Argumentos de compilação condicionais)
Isso é amplamente útil para desafios de código de erro
Dado o argumento de compilação condicional n=[some_value], isso permite executar o código que produzirá um código de erro, com base no valor de n. note que isso exige uma adição de 2 bytes ao seu código para a n=seção de argumentos de compilação condicional do Painel de Propriedades do VBAProject.
Código de exemplo
...
#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
...
Saída através do valor da função
Não há muito a dizer aqui, a forma geral de citar abaixo é tão compacta quanto possível.
Public Function A(b)
...
A=C
End Function
OBSERVAÇÃO: na grande maioria dos casos, é mais byte converter o método em uma sub-rotina e enviar para a janela do VBE imediatamente (veja abaixo)
Saída de Subrotinas Functiones através da janela do VBE Immediates
A saída para a janela imediata do VBE (também conhecida como janela de depuração do VBE) é um método de saída comum para o VBA para desafios baseados em texto; no entanto, é importante lembrar que a Debug.Print "Text"chamada pode ser substancialmente prejudicada.
Debug.Print "Text"
é funcionalmente idêntico ao
Debug.?"Text"
como ?formatação automática para Print.
Saída de Subrotinas e funções da janela VBE Immediates através de outros métodos
Em raras ocasiões, quando a situação é certa, você pode receber informações de algumas das entradas mais triviais disponíveis para o VBA, como o ajustador de tamanho da fonte, o seletor de fontes e o zoom. (Por exemplo, emulando o seletor de tamanho de fonte do Word )