คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

แอปพลิเคชั่นเอาต์พุตข้อมูลอินพุตของแผ่นงาน vba การสร้างกล่องโต้ตอบของคุณเองโดยใช้ VBA ไวยากรณ์ของฟังก์ชัน MsgBox

ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้างช่องป้อนข้อมูลใน VBA Excel - InputBox ซึ่งคุณสามารถป้อนข้อมูลต่างๆ สำหรับการคำนวณได้

การทำงาน อินพุทบ็อกซ์แจ้งให้ผู้ใช้ป้อนค่า หลังจากป้อนค่า หากผู้ใช้กดปุ่ม OK หรือกด ENTER บนแป้นพิมพ์ ฟังก์ชัน InputBox จะส่งคืนข้อความในกล่องข้อความ หากผู้ใช้คลิกปุ่ม "ยกเลิก" ฟังก์ชันจะส่งคืนสตริงว่าง ("")

ไวยากรณ์

InputBox(พรอมต์[,ชื่อ][,ค่าเริ่มต้น][,xpos][,ypos][,helpfile,context])

คำอธิบายพารามิเตอร์

  • คำขอเป็นพารามิเตอร์ที่จำเป็น สตริงที่จะแสดงเป็นข้อความในกล่องโต้ตอบ ความยาวสูงสุดของคำเชิญคือประมาณ 1,024 อักขระ หากข้อความครอบคลุมมากกว่าหนึ่งบรรทัด สามารถแยกบรรทัดได้โดยใช้อักขระขึ้นบรรทัดใหม่ (Chr(13)) หรือขึ้นบรรทัดใหม่ (Chr(10)) ระหว่างแต่ละบรรทัด
  • ชื่อเป็นพารามิเตอร์ทางเลือก นิพจน์สตริงจะแสดงในแถบชื่อเรื่องของกล่องโต้ตอบ หากชื่อเรื่องเว้นว่างไว้ ชื่อแอปพลิเคชันจะถูกวางไว้ในแถบชื่อเรื่อง
  • ค่าดีฟอลต์คือพารามิเตอร์ทางเลือก ข้อความเริ่มต้นในช่องข้อความที่ผู้ใช้ต้องการแสดง
  • XPos เป็นพารามิเตอร์ทางเลือก ตำแหน่งแกน x คือระยะแนวนอนโดยประมาณจากด้านซ้ายของหน้าจอ หากคุณปล่อยช่องว่างไว้ ช่องป้อนข้อมูลจะอยู่ในแนวนอน
  • YPos เป็นพารามิเตอร์ทางเลือก ตำแหน่งแกน Y คือระยะแนวตั้งโดยประมาณจากด้านซ้ายของหน้าจอ หากเว้นว่างไว้ ช่องใส่ข้อมูลจะอยู่ตรงกลางแนวตั้ง
  • ไฟล์วิธีใช้เป็นพารามิเตอร์เผื่อเลือก นิพจน์สตริงที่ระบุไฟล์วิธีใช้ที่จะใช้ในการให้ความช่วยเหลือตามบริบทสำหรับกล่องโต้ตอบ
  • บริบท - พารามิเตอร์ทางเลือก นิพจน์ตัวเลขที่ระบุหมายเลขบริบทความช่วยเหลือที่กำหนดโดยผู้เขียนความช่วยเหลือสำหรับหัวข้อวิธีใช้ที่สอดคล้องกัน หากมีการระบุบริบท จะต้องมีไฟล์วิธีใช้ด้วย

ตัวอย่าง

ลองคำนวณพื้นที่ของสี่เหลี่ยมผืนผ้าโดยรับค่าจากผู้ใช้ขณะรันไทม์โดยใช้ช่องป้อนข้อมูลสองช่อง (ช่องหนึ่งสำหรับความยาวและอีกช่องสำหรับความกว้าง)

ฟังก์ชัน findArea() Dim Length As Double Dim Width As Double Length = InputBox("Enter length", "Enter number") Width = InputBox("Enter width", "Enter number") findArea = Length * Width End Function

InputBox ทีละขั้นตอน

ขั้นตอนที่ 1 - ในการดำเนินการเดียวกัน ให้เรียกใช้ด้วยชื่อฟังก์ชันแล้วกด Enter ดังที่แสดงในภาพหน้าจอต่อไปนี้

ขั้นตอนที่ 2 - หลังจากดำเนินการ ฟิลด์อินพุตแรก (ความยาว) จะปรากฏขึ้น ป้อนค่าในช่องป้อนข้อมูล

ฟังก์ชัน MsgBox ช่วยให้ ข้อมูลเอาท์พุทบนหน้าจอเป็นหน้าต่าง

มุมมองทั่วไปของฟังก์ชัน:

ข้อความ MsgBox

[,รหัสปุ่ม [,ชื่อเรื่อง]]

ข้อความ - กำหนดค่าของนิพจน์ที่จะแสดงในกล่องข้อความ นิพจน์นี้สามารถเป็นข้อความที่จะยกมาและ/หรือตัวแปร หากต้องการแสดงข้อความและค่าของตัวแปรในหน้าต่างเดียว ให้ใช้ตัวดำเนินการต่อสตริง (&)

Dim Pi เป็นโสด

MsgBox "pi=" & ปี่

ผลลัพธ์ของมาโคร:

รหัสปุ่ม - กำหนดปุ่มและไอคอนที่จะแสดงในหน้าต่างข้อความ ถ้าไม่ได้ระบุพารามิเตอร์นี้ กล่องข้อความจะมีเพียงปุ่มเดียว ตกลง.

หัวเรื่อง - มีข้อความที่แสดงในแถบชื่อเรื่องของข้อความ ถ้าไม่ได้ระบุอาร์กิวเมนต์นี้ สตริงจะถูกวางไว้ในส่วนหัว ไมโครซอฟท์เก่ง.

Dim Pi เป็นโสด

MsgBox Pi,"นี่คือปี่"

การป้อนข้อมูลใน VBA สามารถทำได้โดยใช้ช่องใส่:

การทำงาน อินพุทบ็อกซ์สร้างหน้าต่างป้อนข้อมูล:

InputBox(ข้อความ

[,ชื่อเรื่อง[,ค่า]])

ข้อความ - สตริงอักขระหรือตัวแปรสตริงที่มีข้อความถึงผู้ใช้

หัวเรื่อง - ข้อความที่แสดงในแถบชื่อเรื่องของข้อความ

ค่า - ระบุค่าที่แสดงโดยค่าเริ่มต้นในช่องข้อความของกล่องโต้ตอบ

ปัญหาที่ 2 มุมถูกกำหนดเป็นเรเดียน แปลงเป็นองศา

Const pi = 3.14159

Dim g เป็นจำนวนเต็ม

Dim m เป็นจำนวนเต็ม

Dim เป็นจำนวนเต็ม

r = InputBox("r=", "ค่ามุมเป็นเรเดียน", pi / 4)

g = แก้ไข (r * 180 / pi)

m = แก้ไข ((r*180/pi-g)*60)

s=แก้ไข(((r*180/pi-g)*60-m)*60)

MsgBox g & "degrees" & m & "minutes" & s & "วินาที"

18. ตัวดำเนินการตามเงื่อนไข

ข้อความแสดงเงื่อนไขจะใช้เมื่อจำเป็นต้องดำเนินการอย่างใดอย่างหนึ่งขึ้นอยู่กับเงื่อนไขบางอย่าง

ตัวดำเนินการตามเงื่อนไขสอดคล้องกับบล็อกไดอะแกรมที่กำหนด มีรูปแบบดังนี้

ถ้าแสดงออกแล้ว

โอเปอเรเตอร์1

โอเปอเรเตอร์2

ในโครงสร้างนี้ นิพจน์ต้องมีประเภทบูลีน

ตัวดำเนินการทำงานเช่นนี้ ค่าของนิพจน์ได้รับการประเมิน หากประเมินเป็นจริง คำสั่ง 1 จะถูกดำเนินการ มิฉะนั้น (นิพจน์ประเมินเป็นเท็จ) จะถูกดำเนินการ คำสั่ง 2

หากมีการดำเนินการบางอย่างขึ้นอยู่กับเงื่อนไขและไม่มีอะไรเกิดขึ้นอัลกอริทึมจะมีรูปแบบ:

ตัวดำเนินการแบบมีเงื่อนไขในกรณีนี้ มีโครงสร้าง:

ถ้าแสดงออกแล้ว

ผู้ประกอบการ

รายการนี้เรียกว่า "การข้ามคำสั่ง else"

ที่นี่ คำสั่งจะดำเนินการหรือข้าม ขึ้นอยู่กับค่าของนิพจน์

อนุญาตให้ใช้คำสั่ง If...then...Else ที่ซ้อนกันหลายชุด โดยซ้อนหลายระดับเท่าที่จำเป็น

ถ้า expression1 แล้ว

ตัวดำเนินการ1

Elseif expression2 แล้ว

ตัวดำเนินการ2

Elseif expression3 แล้ว

ตัวดำเนินการ3

Elseif expressionN แล้ว

ตัวดำเนินการN

ผู้ประกอบการ

เพื่อให้โปรแกรมอ่านง่ายขึ้น แทนที่จะใช้คำสั่งซ้อนกันหลายคำสั่ง บางครั้งควรใช้คำสั่ง Select Case

เลือก กรณี<การแสดงออก>

กรณี<เงื่อนไขทางเลือก1>

<ตัวดำเนินการ 1>

กรณี<เงื่อนไขทางเลือก2>

<ตัวดำเนินการ 2>

……………..

กรณี<เงื่อนไขการเลือกเอ็น>

<ผู้ประกอบการเอ็น>

<ผู้ประกอบการ>

19. ตัวอย่างโปรแกรม

งานที่ 3 . ทราบค่าสัมประสิทธิ์ a, b และ c ของสมการกำลังสอง ขวาน 2 +bx+=0. คำนวณรากของสมการกำลังสอง

ข้อมูลอินพุต: a, b, c.

ข้อมูลเอาต์พุต: x 1, x 2

ซับไพรม์ 7()

หรี่ x1 เท่าเดียว

หรี่ x2 เท่าเดียว

InputBox("A=","ค่าสัมประสิทธิ์ของสมการกำลังสอง", 2)

InputBox("B="," ค่าสัมประสิทธิ์กำลังสอง", 3)

InputBox("C="," ค่าสัมประสิทธิ์กำลังสอง",-2)

d=b^2 - 4*a*c

ถ้า ง< 0 Then

MsgBox "ไม่มีวิธีแก้ปัญหา", vbCritical

x1=(-b+Sqr(d))/(2*ก)

x2=(-b-Sqr(d))/(2*ก)

MsgBox "X1=" & x1 & Chr(13) & "X2=" & x2, vbInformation

งานที่ 4กำหนดเป็นจำนวนจริง x. สำหรับฟังก์ชันที่มีกราฟแสดงด้านล่าง ให้คำนวณ =(x).

ถ้า x<= -1 Then

อื่นถ้า x > 1 แล้ว

งาน 5. กำหนดจำนวนจริง xและ . ตรวจสอบว่าจุดที่มีพิกัด ( x; ) ของส่วนที่แรเงาของระนาบ

จุดพิกัด ( x;) เป็นส่วนที่แรเงาของระนาบหาก:

ถ้า y<= 2 * x + 2 And

คำสั่งเงื่อนไขใน VBA

บ่อยครั้งที่จำเป็นต้องดำเนินการส่วนหนึ่งของโปรแกรมก็ต่อเมื่อตรงตามเงื่อนไขบางประการเท่านั้น วิธีแก้ปัญหานี้คือการใช้โครงสร้างพิเศษที่ใช้ตัวดำเนินการสาขา

มุมมองทั่วไปของการออกแบบนี้:

ถ้า<логическое выражение>แล้ว<список операторов>จบ ถ้า

<логическое выражение>เป็นเงื่อนไขอย่างง่ายหรือซับซ้อน หรือค่าคงที่บูลีน (จริงหรือเท็จ)

เงื่อนไขที่ซับซ้อนประกอบด้วยเงื่อนไขง่าย ๆ ที่เชื่อมต่อกันด้วยการดำเนินการทางตรรกะ AND หรือ OR

ตัวอย่างเช่น: (ก =ข)

อัลกอริทึม

2) ถ้าค่าของนิพจน์ตรรกะเป็นจริง รายการคำสั่งจะถูกดำเนินการ

3) หากค่าของนิพจน์เชิงตรรกะเป็นเท็จ จะไม่มีการดำเนินการใดๆ

สาขาเพิ่มเติมของสาขาตามเงื่อนไข:

ถ้า<логическое выражение>แล้ว

<список операторов1>

<список операторов2>

อัลกอริทึม

1) คำนวณค่าของนิพจน์เชิงตรรกะ

2) ถ้าค่าของนิพจน์ตรรกะเป็นจริง รายการคำสั่ง 1 จะถูกดำเนินการ

3) หากค่าของนิพจน์ตรรกะเป็นเท็จ รายการคำสั่ง 2 จะถูกดำเนินการ

ตัวดำเนินการที่ซ้อนกันหลายตัว:

ถ้า<логическое выражение1>แล้ว

<список операторов1>

อื่นถ้า<логическое выражение2>แล้ว

<список операторов2>

อื่นถ้า<логическое выражениеN>แล้ว

<список операторовN>

อัลกอริทึม

1) คำนวณค่าของนิพจน์ตรรกะ 1

2) ถ้าค่าของนิพจน์ตรรกะ 1 เป็นจริง รายการคำสั่ง 1 จะถูกดำเนินการ

3) ถ้าค่าของนิพจน์ตรรกะ 1 เป็นเท็จ รายการคำสั่ง 2 จะถูกดำเนินการ

4) ถ้าค่าของนิพจน์ตรรกะ 2 เป็นจริง รายการคำสั่ง 2 จะถูกดำเนินการ

5) ถ้าค่าของนิพจน์ตรรกะ 2 เป็นเท็จ รายการคำสั่ง 3 จะถูกดำเนินการ

4) ถ้าค่าของนิพจน์ตรรกะ N เป็นจริง รายการคำสั่ง N จะถูกดำเนินการ

5) หากค่าของนิพจน์เชิงตรรกะ N เป็นเท็จ จะไม่มีการดำเนินการใดๆ

a = ช่องใส่ข้อมูล ("ป้อน A")

เซลล์ - คุณสมบัติที่ช่วยให้คุณเข้าถึงเซลล์เฉพาะของแผ่นงาน

เซลล์(i,j) – เซลล์และพิกัด – หมายเลขแถวและหมายเลขคอลัมน์

ตัวอย่างเช่น:

Cells(1,1) - โทรไปยังเซลล์ A1

ในการวางค่าหรือสูตรในเซลล์:

Cells(2,2)=2 - ใส่ค่า 2 ในเซลล์ B2

Cells(2,2).Value =2 ใส่ค่า 2 ในเซลล์ B2

เซลล์(3,1) = a+b - ใส่สูตรสำหรับผลรวมของตัวเลข a และ b ในเซลล์ C1



เซลล์(3,2) = เซลล์(1,1).ค่า + เซลล์(1,2).ค่า - ในเซลล์ C2 ใส่สูตรสำหรับผลรวมของค่าจากเซลล์ A1 และ A2

Cells(i,j) = InputBox(“”) - เซลล์จะเก็บค่าที่เราป้อนในกล่องอินพุต

Cells(i,j).Select - เลือกเซลล์ที่ต้องการ

Cells.Select - เลือกเซลล์ทั้งหมดในแผ่นงาน

Cells(i,j).Activate - ทำให้เซลล์ใช้งานได้

ในการแสดงค่าในเซลล์บนหน้าจอ:

Cells(1,1) =3 - ใส่ค่า 3 ในเซลล์ A1

Msgbox(เซลล์(1,1)) - ค่าจากเซลล์จะปรากฏขึ้น

เซลล์(1,1) = k+2 - ในเซลล์ A1 เราใส่สูตร k+2 โดยที่ k คือตัวเลขที่กำหนด

Msgbox(เซลล์(1,1)) - ผลลัพธ์ของสูตรคำนวณที่เก็บอยู่ในเซลล์ A1 จะแสดงขึ้น

MsgBox() - แสดงกล่องข้อความและส่งกลับค่าขึ้นอยู่กับปุ่มที่ผู้ใช้กด สามารถใช้แสดงผลการคำนวณบนหน้าจอเป็นข้อความได้

MsgBox (พรอมต์ ปุ่ม ชื่อเรื่อง ไฟล์ช่วยเหลือ บริบท)

MsgBox (คำแนะนำเครื่องมือ ปุ่ม ชื่อ ไฟล์วิธีใช้ บริบท)

พรอมต์ (คำใบ้) - ข้อความที่แสดงบนหน้าจอ

ปุ่ม (ปุ่ม) - ค่าคงที่ที่กำหนดว่าปุ่มใดที่จะอยู่ในกล่องโต้ตอบนี้

ชื่อเรื่อง - ชื่อเรื่องของกล่องโต้ตอบ

helpfile (ไฟล์วิธีใช้) - ชื่อของไฟล์วิธีใช้

บริบท (บริบท) - บริบทสำหรับวิธีใช้ตามบริบท ซึ่งอธิบายไว้หากมีไฟล์ช่วยเหลือ

InputBox - ฟังก์ชั่นของการป้อนข้อมูลเริ่มต้น แสดงกล่องโต้ตอบพร้อมข้อความและช่องสำหรับป้อนข้อความของผู้ใช้

" เราได้ทำความคุ้นเคยกับข้อความโต้ตอบ msgbox ในช่วงสั้น ๆ แต่มันเป็นข้อความแสดงข้อมูลที่ง่ายที่สุด ตอนนี้เรามาดูรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานกับฟังก์ชัน MsgBox และข้อความโต้ตอบทุกประเภท

ไวยากรณ์ของฟังก์ชัน MsgBox

ฟังก์ชัน MsgBox มีไวยากรณ์ดังต่อไปนี้:

MsgBox( ข้อความ [, ค่าคงที่ของข้อความ] [, ชื่อเรื่อง] [, ไฟล์วิธีใช้ hlp, บริบทวิธีใช้] )

พารามิเตอร์ที่ต้องการคือ "ข้อความ" ส่วนที่เหลือสามารถละเว้นได้

MsgBox "ข้อความ

  • ค่าคงที่ของข้อความ- ให้คุณกำหนดประเภทของบทสนทนา
  • หัวข้อ– ตั้งชื่อเรื่องของแบบฟอร์มการโต้ตอบ
  • ไฟล์ช่วยเหลือช่วยด้วยเป็นนิพจน์สตริงที่ระบุชื่อของไฟล์วิธีใช้สำหรับกล่องโต้ตอบ
  • บริบทความช่วยเหลือเป็นนิพจน์ตัวเลขที่ระบุหมายเลขบริบทของไฟล์วิธีใช้สำหรับกล่องโต้ตอบ

ดูกล่องโต้ตอบ:

สร้างโดยคำสั่งต่อไปนี้:
MsgBox "ข้อความมีคำถาม", vbYesNo, "ชื่อข้อความ"

หากต้องการสร้างข้อความเช่นนี้:

คำสั่งจะมีลักษณะดังนี้:
MsgBox "ข้อความมีคำถาม", vbYesNoCancel, "ชื่อข้อความ"

ข้อความเช่นนี้:

สร้างโดยคำสั่ง:
MsgBox "ข้อความที่มีคำถาม", vbAbortRetryIgnore, "ชื่อข้อความ"

เหล่านั้น. จากทั้งสามตัวอย่างในคำสั่ง เฉพาะพารามิเตอร์ที่สองเท่านั้นที่เปลี่ยนแปลง (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore) นี่คือค่า (ค่าคงที่) ที่กำหนดประเภทของข้อความ พารามิเตอร์ (vbYesNo, vbYesNoCancel) สามารถแทนที่ด้วยค่าตัวเลขได้ เช่น สามารถเรียกใช้ไดอะล็อก vbYesNo ได้โดยการป้อน 4: MsgBox "Text with questions", 4, "Message name"

ต่อไปนี้เป็นรายการค่าคงที่ทั้งหมดและค่าเทียบเท่าดิจิทัล:

คงที่

ความหมาย

คำอธิบาย

vbตกลงเท่านั้น

แสดงข้อความด้วยปุ่ม ตกลง

vbตกลงยกเลิก

แสดงข้อความด้วยปุ่ม ตกลงและ ยกเลิก

vbAbort ลองใหม่ ละเว้น

แสดงข้อความด้วยปุ่ม ยกเลิก, ทำซ้ำ, ข้าม

vbYesNoCancel

แสดงข้อความด้วยปุ่ม ใช่, เลขที่, ยกเลิก.

แสดงข้อความด้วยปุ่ม ใช่และ เลขที่

vbลองใหม่ ยกเลิก

แสดงข้อความด้วยปุ่ม ทำซ้ำและ ยกเลิก

ในข้อความ คุณสามารถเปลี่ยนรูปลักษณ์เล็กน้อย กำหนดปุ่มเริ่มต้น เพิ่มปุ่ม "วิธีใช้" โดยการเพิ่มค่าคงที่

ตัวอย่างเช่น: MsgBox "ข้อความที่มีคำถาม", vbYesNoCancel+vbInformation + vbMsgBoxHelpButton+vbDefaultButton2 "ชื่อข้อความ" จะสร้างข้อความดังนี้:

ข้อมูล vb- เพิ่มไอคอนอัศเจรีย์ในข้อความ
vbMsgBoxHelpButton- เพิ่มปุ่ม "ช่วยเหลือ"
vbDefaultButton2- ตั้งโฟกัสไปที่ปุ่มที่สอง (" เลขที่")

ด้านล่างนี้คือค่าคงที่ของไอคอนที่แสดงรายการตารางและค่าคงที่ของปุ่มโฟกัส:

คงที่

ความหมาย

คำอธิบาย

vb วิกฤต

แสดงไอคอน ข้อความที่สำคัญ(วงรีสีแดงพร้อมกากบาท)

vbคำถาม

แสดงไอคอนด้วย เครื่องหมายคำถาม

vb อัศเจรีย์

แสดงไอคอนด้วย เครื่องหมายอัศเจรีย์(ในรูปสามเหลี่ยมสีเหลือง)

ข้อมูล vb

แสดงไอคอน ข้อความข้อมูล

vbDefaultButton1

ตั้งค่าโฟกัสเริ่มต้นเป็นปุ่มแรก

vbDefaultButton2

ตั้งค่าโฟกัสเริ่มต้นเป็นปุ่มที่สอง

vbDefaultButton3

ตั้งค่าโฟกัสเริ่มต้นเป็นปุ่มที่สาม

vbDefaultButton4

ตั้งค่าโฟกัสเริ่มต้นเป็นปุ่มที่สี่

vbMsgBoxHelpButton

เพิ่มปุ่ม อ้างอิง

vbMsgBoxRight

จัดแนวข้อความไปทางด้านขวา

vbMsgBoxRtlReading

มิเรอร์องค์ประกอบทั้งหมดในข้อความ (ดูภาพรวมด้านล่าง)

จะทราบได้อย่างไรว่าผู้ใช้คลิกปุ่มใดในข้อความ

ตัวเลือกของผู้ใช้จะถูกกำหนดโดยใช้ ในบางสถานการณ์คุณสามารถใช้ .

ตัวอย่างเช่น เรียกข้อความโดยดับเบิลคลิก LMB ที่เซลล์ใดก็ได้บนแผ่นงาน เราจะแสดงข้อความในเซลล์นี้ตามตัวเลือกของผู้ใช้

สร้างสมุดงาน Excel ใหม่และเปลี่ยนเป็นโหมด Visual Basic (Alt+F11) ในหน้าต่างโครงการ เลือก " แผ่นที่ 1» และคลิก LMB สองครั้ง

ในหน้าต่างตัวแก้ไขโค้ดที่เปิดขึ้น ให้ป้อนขั้นตอนต่อไปนี้:

ย่อยส่วนตัวแผ่นงาน_ก่อนDoubleClick( บายวัลเป้า เช่นช่วง, ยกเลิก เช่น บูลีน)

ถ้า MsgBox("ข้อความที่มีคำถาม", vbYesNo, "ชื่อข้อความ") = vbYes แล้ว
การเลือก = "กด ใช่"
อื่น
การเลือก = "กดไม่"
จบ ถ้า

ในเงื่อนไข IF เราจะเปรียบเทียบผลลัพธ์ที่ส่งคืนโดยฟังก์ชัน MsgBox กับค่าคงที่ vbYes เช่น หากกดปุ่มในข้อความ ใช่” จากนั้นฟังก์ชัน MsgBox จะคืนค่า vbYes (6) รายการค่าคงที่ทั้งหมดและค่าเทียบเท่าดิจิทัลอยู่ด้านล่าง ตอนนี้ลอง แผ่นที่ 1ดับเบิลคลิกที่เซลล์ใดก็ได้

บันทึก: เมื่อมีการเรียกใช้ข้อความ การดำเนินการของโปรแกรมจะหยุดลงจนกว่าจะได้รับการตอบกลับจากผู้ใช้

ตัวเลือกที่สองในการโทรโต้ตอบด้วย .

มาสร้างขั้นตอนที่สองใน Sheet 2 รหัสขั้นตอนมีดังนี้:

ย่อยส่วนตัวแผ่นงาน_ก่อนDoubleClick( บายวัลเป้า เช่นช่วง, ยกเลิก เป็นบูลีน)
สลัวเม
mes = MsgBox("ข้อความที่มีคำถาม", vbYesNoCancel + vbInformation + vbDefaultButton2, "ชื่อข้อความ")

เลือก กรณีเม
กรณี vbใช่: การเลือก = "กดใช่"
กรณี vbNo: การเลือก = "กด NO"
กรณี vbCancel: Selection = "กดยกเลิก"
สิ้นสุดการเลือก

ในกรณีนี้ ผลลัพธ์ของการเรียก MsgBox ถูกกำหนดให้กับตัวแปร เมจากนั้นใน Select Case จะมีการค้นหาการจับคู่และดำเนินการตามการจับคู่

นั่นคือทั้งหมด สิ่งที่แนบมาด้านล่างคือตัวอย่างที่เสร็จสิ้นซึ่งกล่าวถึงในบทความนี้

รายการค่าคงที่และค่าที่ส่งคืนโดยฟังก์ชัน MsgBox:

คงที่

ความหมาย

ปุ่ม

vbยกเลิก

ยกเลิก

ยกเลิก

ทำซ้ำ

vb เพิกเฉย

ข้าม

วิธี เซลล์ทำให้เซลล์ที่ระบุใช้งานได้ ไวยากรณ์ของเมธอดเป็นดังนี้:

เซลล์[(N แถว, N คอลัมน์)]

ไม่มีบรรทัด -หมายเลขแถวของแผ่นงาน Excel ปัจจุบัน ,

ไม่มีคอลัมน์ -จำนวนคอลัมน์ของแผ่นงาน Excel ปัจจุบัน (เมื่อเรียกวิธีนี้ คอลัมน์จะมีหมายเลข)

ตัวเลือกไวยากรณ์นี้จะถือว่าเซลล์บนแผ่นงาน Excel ที่ใช้งานอยู่ที่จุดตัดกัน ไม่มีบรรทัดและ ไม่มีคอลัมน์เริ่มใช้งาน

โดยใช้วิธี เซลล์คุณสามารถทำให้เซลล์ทำงานเพื่อให้คุณสามารถป้อนหรือแสดงข้อมูลได้

ถ้าใช้วิธีนี้ ป้อนข้อมูล จากเซลล์แผ่นงานไปยังตัวแปรแล้ว เซลล์ยืนอยู่ทางด้านขวาของตัวดำเนินการกำหนด และถ้า บทสรุป จากตัวแปรไปยังเซลล์เวิร์กชีต จากนั้น เซลล์อยู่ทางด้านซ้ายของมัน

โครงสร้างอินพุตโดยใช้วิธี เซลล์ต่อไป:

< ชื่อ>=เซลล์( ),

< ชื่อ> - ตัวแปรอย่างง่ายหรือองค์ประกอบอาร์เรย์

โครงสร้างเอาต์พุตโดยใช้วิธี เซลล์ต่อไป:

เซลล์( )= < การแสดงออก>,

< การแสดงออก> - ค่าเอาต์พุตใดๆ

พิจารณาตัวอย่างโปรแกรมต่อไปนี้:

ย่อย I/O_Cells()

เซลล์(5, 1) = "c="

ก่อนเรียกใช้แมโครนี้ แผ่นงาน Excel จะมีลักษณะดังนี้ (ดูรูปที่ 13):

และหลังจากเรียกใช้มาโครแล้ว จะมีลักษณะดังนี้ (ดูรูปที่ 14):

โครงสร้างการควบคุม VBA ตัวดำเนินการแบบมีเงื่อนไข ตัวดำเนินการกระโดดแบบไม่มีเงื่อนไข

โครงสร้างการควบคุมให้คุณควบคุมลำดับการทำงานของโปรแกรม หากไม่มีคำสั่งควบคุม คำสั่งโปรแกรมทั้งหมดจะถูกดำเนินการจากซ้ายไปขวาและบนลงล่าง พิจารณาหนึ่งในโครงสร้างการควบคุม VBA: ตัวดำเนินการตามเงื่อนไข.

ตัวดำเนินการแบบมีเงื่อนไขจะใช้เมื่อจำเป็นต้องดำเนินการหนึ่งหรือกลุ่มของคำสั่งโดยขึ้นอยู่กับค่าของเงื่อนไขบางอย่าง

ไวยากรณ์ตัวดำเนินการตามเงื่อนไข:

แบบสั้น Þ ถ้า<условие>แล้ว<оператор>

ถ้า< условие >แล้ว

< оператор > /< Группа операторов 1 >

แบบเต็มๆ Þ ถ้า< условие >แล้ว

< оператор 1 > / < Группа операторов 1 >

< оператор 2> < Группа операторов 2 >

ในบล็อกไดอะแกรม ข้อความแสดงเงื่อนไขมีดังต่อไปนี้:

โดยปกติแล้ว เงื่อนไขคือการเปรียบเทียบอย่างง่าย แต่สามารถเป็นนิพจน์ใดก็ได้ที่มีค่าจากการคำนวณ ค่านี้จะถูกตีความเป็น False (เท็จ) หากเป็นศูนย์ และค่าใดๆ ที่ไม่ใช่ศูนย์จะถือว่าเป็น True (จริง) หากเงื่อนไขเป็นจริง นิพจน์ทั้งหมดหลังจากคำหลักจะถูกดำเนินการ แล้ว. หากเงื่อนไขเป็นเท็จ นิพจน์ทั้งหมดหลังจากคำหลักจะถูกดำเนินการ อื่น.

อนุญาตให้มีโครงสร้างที่ซ้อนกันหลายชั้น โดยมีจำนวนการซ้อนหลายระดับเท่าที่จำเป็น

พิจารณาโครงสร้างการควบคุมอื่น - ตัวดำเนินการกระโดดแบบไม่มีเงื่อนไข. ไวยากรณ์ของมันคือ:

ไปที่ ฉลาก,

ที่ไหน ฉลากคือการรวมกันของอักขระ

คำสั่งนี้บังคับให้เปลี่ยนลำดับการทำงานของโปรแกรม คำสั่ง GoTo ถ่ายโอนการควบคุมไปยังคำสั่งที่มีป้ายกำกับ เช่น ตามคำสั่ง GoTo คำสั่งที่ระบุโดยฉลากจะถูกดำเนินการ

โครงสร้างการควบคุม VBA ตัวดำเนินการลูป

บางครั้งคุณจำเป็นต้องดำเนินการชุดคำสั่งบางอย่างโดยอัตโนมัติซ้ำๆ หรือแก้ปัญหาด้วยวิธีอื่น ขึ้นอยู่กับค่าของตัวแปรหรือพารามิเตอร์ที่กำหนดโดยผู้ใช้ในระหว่างการดำเนินการ สำหรับสิ่งนี้ จะใช้ตัวดำเนินการเงื่อนไขและตัวดำเนินการลูป

พิจารณาคำสั่งวนรอบ VBA วนซ้ำด้วยจำนวนซ้ำที่ทราบ(วนซ้ำกับพารามิเตอร์) นำไปใช้ใน VBA กับตัวดำเนินการ สำหรับถัดไปโครงสร้างดังต่อไปนี้:

สำหรับ<параметр цикла>= <начальное значение> ถึง<конечное значение>

<операторы VBA>

ต่อไป<параметр цикла>

<параметр цикла>– ชื่อ (ตัวระบุ) ของพารามิเตอร์รอบ;

<начальное значение> คือค่าเริ่มต้นของพารามิเตอร์รอบ

<конечное значение>คือค่าสุดท้ายของพารามิเตอร์รอบ

<шаг>– ขั้นตอนการเปลี่ยนพารามิเตอร์ของวงจร (พารามิเตอร์ทางเลือก หากไม่มีอยู่ ขั้นตอนการเปลี่ยนแปลงจะเท่ากับ 1)

<операторы VBA>

ในบล็อกไดอะแกรม ตัวดำเนินการนี้มีดังต่อไปนี้:

ในเนื้อหาของลูปนี้ คุณสามารถใช้โอเปอเรเตอร์ได้ ทางออกสำหรับซึ่งคุณสามารถทำให้วงจรสมบูรณ์ได้ สำหรับถัดไปก่อนที่พารามิเตอร์จะใช้ค่าสุดท้าย

วนซ้ำโดยไม่ทราบจำนวนซ้ำจะถูกนำไปใช้ใน VBA โดยใช้คำสั่ง Do while … Loop, Do until … Loop, Do … Loop while, Do … Loop until

พิจารณาโครงสร้างของคำสั่ง Do while ... Loop

ทำในขณะที่<условие>

<операторы VBA>

ที่นี่ <условие> – นิพจน์เชิงตรรกะ

<операторы VBA> - คำสั่ง VBA ที่ใช้เนื้อความของลูป

<условие>, ถ้า<условие>รับค่า True จากนั้นคำสั่งที่ขึ้นกับคำบริการ Loop จะถูกดำเนินการ จากนั้นจึงตรวจสอบเงื่อนไขอีกครั้ง ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ (False)

พิจารณาโครงสร้างของตัวดำเนินการ Do until ... Loop

ทำจนกว่า<условие>

<операторы VBA>

ตัวดำเนินการดำเนินการดังนี้ ตรวจสอบแล้ว<условие>, ถ้า<условие>รับค่า False จากนั้นคำสั่งที่ขึ้นกับคำบริการ Loop จะถูกดำเนินการ จากนั้นจึงทำการตรวจสอบเงื่อนไขอีกครั้ง ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นจริง (True)

ในบล็อกไดอะแกรม ตัวดำเนินการนี้มีดังต่อไปนี้:

เราได้ดูคำสั่งลูปที่ใช้การวนซ้ำโดยมีเงื่อนไขล่วงหน้า

พิจารณาตัวดำเนินการลูปที่ใช้ลูปกับเงื่อนไขภายหลัง เหล่านี้คือคำสั่ง Do … วนซ้ำในขณะที่และทำ … วนซ้ำจนกว่าจะ โครงสร้างของตัวดำเนินการเหล่านี้มีดังนี้:

<операторы VBA>

วนซ้ำจนกว่า<условие>

<условие>, ถ้า<условие>รับค่า False จากนั้นคำสั่งอีกครั้งถึงคำบริการ Loop จะถูกดำเนินการ สิ่งนี้ดำเนินต่อไปจนกระทั่ง<условие>จะไม่เป็นจริง (จริง)

ในบล็อกไดอะแกรม ตัวดำเนินการนี้มีดังต่อไปนี้:

<операторы VBA>

วนซ้ำในขณะที่<условие>

ตัวดำเนินการดำเนินการดังนี้ ตัวดำเนินการจนถึงคำบริการ Loop จะถูกดำเนินการ จากนั้นตรวจสอบ<условие>, ถ้า<условие>รับค่า True จากนั้นคำสั่งอีกครั้งถึงคำบริการ Loop จะถูกดำเนินการ สิ่งนี้ดำเนินต่อไปจนกระทั่ง<условие>จะไม่กลายเป็นเท็จ (False)

ในบล็อกไดอะแกรม ตัวดำเนินการนี้มีดังต่อไปนี้:

ใน VBA มีโอเปอเรเตอร์ที่ให้คุณออกจากลูปก่อนกำหนดโดยไม่ทราบจำนวนการทำซ้ำ หากต้องการออกจากลูปเหล่านี้ คุณต้องใช้โอเปอเรเตอร์ ออกจาก อย.