STDIN і STDOUT
Введення в Sub
підпрограми та Function
s за допомогою вхідних змінних
Public Sub A(ByRef B as String)
Може бути зменшено до
Sub a(b$)
The Public
іByRef
дзвінки за замовчуванням для VBA і , таким чином , неявно, і може (майже) завжди бути відкинутий.
Буквальні $
сили типу b
мають бути типуString
.
Літерали інших типів
!
Неодружений
@
Валюта
#
Подвійний
%
Цілий
$
Рядок
&
Довго
^
LongLong (лише 64 біт)
Крім того, загальновизнано, що ви можете залишити вхідну змінну як тип за замовчуванням, Variant
а будь-які помилки на основі типу залишити без обробки. Напр. Sub E(F)
в якому F
очікується тип Boolean[]
(який буде переданий у звичайний режим E Array(True, False, False)
)
Введення в Sub
підпрограми та функції негайних вікон черезCells
VBA не має повністю функціональної консолі і, таким чином, не має жодної офіційної STDIN, і, таким чином, дозволяє використовувати деякі гру з прохідним входом.
За винятком, прийнято приймати дані з комірки або діапазону комірок, що може бути зроблено так
s=[A1]
яка неявно ставить .value
з комірки [A1]
(на яку також можна посилатися як cells(1,1)
абоrange("A1")
Приклад Проблема: Відобразить вхід у полі повідомлень
Через підпрограму Sub A:msgbox[A1]:End Sub
Через функцію вікна негайно msgbox[A1]
Введення через умовні аргументи компіляції
Проекти VBA підтримують отримання аргументів з командного рядка або через Властивості VBAProject (перегляд через провідник проектів -> [Ваш проект VBA] - (клацніть правою кнопкою миші) -> Властивості VBAProject -> Аргументи умовної компіляції)
Це багато в чому корисно для викликів коду помилок
Враховуючи аргумент умовного компіляції n=
[some_value], це дозволяє виконувати код, який створить код помилки, виходячи зі значення n
. Зауважте, це вимагає додавання до вашого коду 2-х байт n=
у розділі умовних аргументів компіляції на панелі властивостей VBAProject.
Приклад коду
...
#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
...
Виведення через значення функції
Тут багато чого сказати, загальна форма цитованих нижче приблизно така ж компактна, наскільки це можна зробити.
Public Function A(b)
...
A=C
End Function
ПРИМІТКА: у переважній більшості випадків більш байт перетворює метод у підпрограму та виводить у вікно безпосередніх VBE (див. Нижче)
Виведення з Sub
підпрограм та Function
s через вікно негайних VBE
Виведення до прямого вікна VBE (AKA the WB Debug Window) є загальним методом виводу VBA для текстових викликів, однак, важливо пам’ятати, що Debug.Print "Text"
виклик може бути значно полегшеним.
Debug.Print "Text"
функціонально ідентичний
Debug.?"Text"
як ?
автоформати до Print
.
Виведення з Sub
підпрограм та функцій вікна негайних негайних VBE за допомогою інших методів
У рідкісних випадках, коли ситуація справді правильна, ви можете взяти інформацію з деяких більш тривіальних входів, доступних для VBA, таких як регулятор розміру шрифту, селектор шрифту та масштабування. (Наприклад, імітація вибору розміру шрифту Word )