STDIN และ STDOUT
การป้อนข้อมูลไปยังรูทีนSub
และFunction
s ผ่านตัวแปรอินพุต
Public Sub A(ByRef B as String)
อาจจะลดลงไป
Sub a(b$)
กระบวนการPublic
และการByRef
เรียกใช้เป็นค่าเริ่มต้นสำหรับ VBA และโดยนัยดังนั้นและอาจ (เกือบ) หลุดเสมอ
ประเภทตัวอักษร$
กองกำลังที่จะเป็นชนิดที่b
String
ตัวอักษรประเภทอื่น ๆ
!
เดียว
@
เงินตรา
#
สอง
%
จำนวนเต็ม
$
เชือก
&
ยาว
^
LongLong (64 บิตเท่านั้น)
นอกจากนี้เป็นที่ยอมรับกันโดยทั่วไปว่าคุณอาจปล่อยให้ตัวแปรอินพุตเป็นชนิดเริ่มต้นVariant
และปล่อยให้ข้อผิดพลาดแบบอิงใด ๆ ถูกจัดการ เช่น. Sub E(F)
ซึ่งF
คาดว่าจะเป็นประเภทBoolean[]
(ซึ่งจะถูกส่งผ่านไปยังรูทีนเช่นE Array(True, False, False)
)
การป้อนข้อมูลไปยังรูทีนSub
และฟังก์ชั่นหน้าต่างทันทีผ่านCells
VBA ไม่ได้มีคอนโซลทำงานอย่างเต็มที่และจึงไม่ได้มีอย่างเป็นทางการ STDIN และทำให้ช่วยให้บางคนเล่นด้วยการป้อนข้อมูลผ่าน
ใน excel เป็นที่ยอมรับกันโดยทั่วไปว่าจะรับอินพุตจากเซลล์หรือช่วงของเซลล์ซึ่งอาจทำได้เช่นกัน
s=[A1]
ซึ่งโดยนัยทำให้.value
จากเซลล์[A1]
(ซึ่งอาจถูกอ้างอิงเป็นcells(1,1)
หรือrange("A1")
ตัวอย่างปัญหา: แสดงอินพุตในกล่องข้อความ
ผ่านรูทีนย่อย Sub A:msgbox[A1]:End Sub
ผ่านฟังก์ชั่นหน้าต่างทันที msgbox[A1]
การป้อนข้อมูลผ่านการรวบรวมข้อโต้แย้งแบบมีเงื่อนไข
โครงการ VBA สนับสนุนการโต้แย้งจากบรรทัดคำสั่งหรือผ่านคุณสมบัติ VBAProject (ดูผ่าน explorer โครงการ -> [โครงการ VBA ของคุณ] - (คลิกขวา) -> คุณสมบัติ VBAProject -> อาร์กิวเมนต์การรวบรวมแบบมีเงื่อนไข)
สิ่งนี้มีประโยชน์มากสำหรับการท้าทายรหัสข้อผิดพลาด
ได้รับการโต้แย้งเงื่อนไขการรวบรวมn=
[some_value] n
นี้จะช่วยให้การดำเนินรหัสที่จะผลิตรหัสข้อผิดพลาดตามออกของค่าของ หมายเหตุการเรียกนี้จะเพิ่ม 2 ไบต์ไปยังรหัสของคุณสำหรับn=
ในส่วนอาร์กิวเมนต์การคอมไพล์ตามเงื่อนไขของ VBAProject Properties Pane
รหัสตัวอย่าง
...
#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 immediates (aka VBE Debug Window) เป็นวิธีการส่งออกทั่วไปสำหรับ VBA สำหรับความท้าทายตามข้อความ แต่มันเป็นสิ่งสำคัญที่ต้องจำไว้ว่าDebug.Print "Text"
การเรียกร้องอาจจะแข็งแรงเล่นกอล์ฟอย่างมีนัยสำคัญ
Debug.Print "Text"
มีหน้าที่เหมือนกับ
Debug.?"Text"
เป็น?
autoformats Print
ไป
เอาต์พุตจากรูทีนSub
และ VBE ฟังก์ชันหน้าต่างทันทีด้วยวิธีอื่น
ในโอกาสที่หายากเมื่อสถานการณ์มีความถูกต้องคุณอาจรับอินพุตจากอินพุตที่ไม่สำคัญของ VBA เช่นตัวปรับขนาดตัวอักษรตัวเลือกแบบอักษรและซูม (เช่นการเลียนแบบตัวเลือกขนาดแบบอักษรของ Word )