บทที่ 3 การพัฒนาโปรแกรมโดยเขียนคำสั่ง VBA

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การแก้ปัญหาการใช้งาน ADO กับ Database อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Advertisements

เป็นการนำความรู้ด้าน Microsoft Excel ที่มีความพิเศษตรงที่สามารถ กำหนดสูตรการคำนวณในแต่ละเซลล์ ของ Sheet งานนั้นๆได้ โดยอาศัย ความแม่นยำในการคีย์ข้อมูลเข้าไป.
ณ ห้องปฏิบัติการคอมพิวเตอร์ คณะพยาบาลศาสตร์ มหาวิทยาลัยเชียงใหม่
การใช้งานโปรแกรม SPSS
Sc B011 Software ที่สนใจ. sc B012 VCD Cutter โปรแกรม ตัด - ต่อ VCD เฉพาะส่วนที่ ต้องการแบบง่าย ๆ.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
วิชาโปรแกรมประมวลผลคำ
แนะนำเมนู และการใช้งาน โปรแกรม IEP ONLINE กลุ่มงานวิชาการ ศูนย์การศึกษาพิเศษ เขตการศึกษา 11 จังหวัดนครราชสีมา.
หน่วยที่ 6 แถวลำดับ (Array)
P.2 P.1Presented by นางสาวฐาวรา พ ร ธรรมวัฒน์ ID Section B01 SC15A.
การใช้งาน Microsoft Excel
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
Microsof t Office Word เตรียมความ พร้อม Microsoft Office Word 2007 แดงเขียวน้ำเงิน ม่วงดำเขียว เหลืองส้มน้ำตาล น้ำเงินดำแดง.
การใช้โปรแกรม Microsoft Word XP Microsoft Word XP.
แบบทดสอบ MICROSOFT EXCEL มีข้อมูลในแผ่นงานตั้งแต่แถวที่ 1 ถึงแถว 500 และคอลัมน์ A จนถึงคอลัมน์ M วิธีการเลือกช่วง ข้อมูลวิธีใด อย่างไร ที่อำนวยความสะดวกได้ดีและให้ผลรวดเร็ว.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
บทที่ 6 การใช้คำสั่ง อ. สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและ การสื่อสาร.
IT Manual SCM June 2016 By Prasert Dokmuang. 2 3.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
บทที่ 8 การใช้งาน Control อ. สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและ การสื่อสาร.
เทคนิคการใช้ Microsoft Excel. 1. การตีตารางในรูปแบบต่าง ๆ 2. การแทรกภาพในตาราง 3. การตกแต่งข้อมูลด้วย Format Cells 4. การคำนวณ บวก ลบ คูณ หาร 5. การย่อ.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
วิธีการใ ช้ โปรแกรมคำนวณคะแนน กลุ่มเกษตรกรดีเด่น กองพัฒนาสหกรณ์ด้าน การเงินและร้านค้า กรมส่งเสริม สหกรณ์
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
การเลื่อน Cell และคำสั่งใน Macro
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
เกม คณิตคิดเร็ว.
บทที่ 7 การสร้างกล่องรับข้อความ และ User Form
บทที่ 5 การใช้คำสั่ง Select Case , For Next และ Do While
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
การเลื่อน Cell และคำสั่งใน Macro
IP-Addressing and Subneting
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
IP-Addressing and Subneting
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
โครงสร้างภาษา C Arduino
การเขียนโปรแกรมสั่งงานตัวควบคุม (Control)
กรณีศึกษา : นักเรียน ระดับ ปวช.2 สาขาวิชาการบัญชี
ครั้งที่4-5วิชาวาดเส้นTV การวาดหน้า
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
“พื้นที่ที่สำรองไว้สำหรับคำอ้างอิงที่จะให้เคลื่อนไหวที่นี่ ”
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
การเขียนภาษาจาวาเบื้องต้น
อาจารย์อภิพงศ์ ปิงยศ Lab 06 : Microsoft Excel (Part2) ทท101 เทคโนโลยีสารสนเทศและนวัตกรรมการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
กิตติกรรมประกาศ งานวิจัยนี้สำเร็จได้ด้วยความอนุเคราะห์ของบุคคลหลายท่านซึ่งไม่สามารถกล่าวไว้ในที่นี้ได้ทั้งหมดทุกท่าน ซึ่งท่านแรก ผู้จัดทำต้องขอขอบคุณ.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
มะเร็งปากมดลูก โดย นางจุฑารัตน์ กองธรรม พยาบาลวิชาชีพ รพ.สต.บ้านโนนแต้
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
การวิจัยทางการท่องเที่ยว
การออกแบบแบบสอบถาม การออกแบบแบบสอบถาม
Tree.
OPERATOR ภาษาปาสคาล (Pascal)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
กลุ่มส่งเสริมอาชีพการเกษตร
Array: One Dimension Programming I 9.
ฟังก์ชันของโปรแกรม Computer Game Programming
Google Scholar คืออะไร
สำนักงานปลัดกระทรวงอุตสาหกรรม
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
การสรุปผลข้อมูล และ Action Query
ใบสำเนางานนำเสนอ:

บทที่ 3 การพัฒนาโปรแกรมโดยเขียนคำสั่ง VBA อ.สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลข

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลข (1) 1. ไปที่ Cell B3 2. กำหนดค่าตัวแปร Address ไว้ในตัวแปร FirstCell 3. ให้เลื่อนไปทำงานที่ Cell ล่างสุด (กดปุ่ม End > กดปุ่มลูกศรลง) 4. กำหนดค่า Address ไว้ในตัวแปร LastCell 5. กำหนดช่วงไว้ในตัวแปร CellRange 6. ให้เลื่อนลง 1 Cell (กดปุ่มลูกศรลง) เพื่อกำหนดสูตร 7. ตั้งสูตร Sum ของช่วง ตั้งแต่ FirstCell ถึง LastCell

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลข (2)

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลข (3) ขั้นตอนเขียนโปรแกรม 1. เรียก Excel ขึ้นมาแล้วป้อนข้อมูล ดังรูป 2. เริ่มเขียน โปรแกรมบน Excel สามารถเข้าสู่ Visual Basic โดยกด Alt+F11 3. Insert Module 4. ตั้งชื่อ Procedure เป็น “SumAmount” 5. พิมพ์คำสั่งดังต่อไปนี้ Sub SumAmount() Range("B3").Select firstcell = ActiveCell.Address Selection.End(xlDown).Select lastcell = ActiveCell.Address cellrange = firstcell & ":" & lastcell ActiveCell.Offset(1, 0).Select ActiveCell.Formula = "=Sum(" & cellrange & ")" End Sub 6. กลับไปยัง Excel สามารถกด Alt+F11 7. สร้างปุ่มให้กับ Procedure SumAmount เพื่อให้โปรแกรมทำงานตามคำสั่งที่เขียนไว้

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลข (4) หมายเหตุ : ActiveCell.Formula = "=Sum (" & MyRange & ")" สามารถแยกทำความเข้าใจดังนี้ 1. "=Sum (" ให้ทำการรวม = Sum( 2. & เชื่อมกับ… 3. MyRange ค่าที่อยู่ในตัวแปร MyRange 4. & เชื่อมกับ… 5. ")" ) หลังจาก Run จะได้ค่าที่โปรแกรมเข้าใจเช่น = SUM(C3:C7)

แบบฝึกหัด ให้เริ่มที่ตำแหน่ง G2 ให้แสดงผลการรวมที่ตำแหน่งที่ห่างจากบรรทัดสุดท้ายของข้อมูลออกไปเป็น (2,2) โดยแก้ไขดังนี้ ActiveCell.Offset(2,2).Select ในบรรทัดที่ 6

การเขียนโปรแกรม เพื่อหาผลรวมของตัวเลขหลาย Column

คำสั่งสำคัญ การอ้างถึงที่อยู่ของ Cell ในรูปแบบ Absolute Address จะมี $ ปรากฏทั้งแนว Row และแนว Column (ค่าที่มี $ กำกับเมื่อทำงานจะมองที่ Cell เดิมไม่เปลี่ยนตำแหน่งใหม่) เช่น Firstcell = ActiveCell.Address = $C$3 ซึ่งหากมีการนำค่าที่อยู่ในช่วงตำแหน่งนี้ไปคำนวณ เช่น หาผลรวมเป็นช่วง =SUM($C$3:$C$7) จะพบว่า ไม่ว่าเราจะทำการเลือก Cell อื่นเพื่อทำการ Copy สูตร สูตรจะยังคงคำนวณจากค่าที่อยู่ Column เดิมคือช่วง C3 ถึง C7 เท่านั้น การอ้างถึงที่อยู่ของ Cell ในรูปแบบ Relative Address เช่น Firstcell = ActiveCell.Address(False, False) = C3 ซึ่งหากมีการนำค่าที่อยู่ในช่วงตำแหน่งนี้ไปคำนวณ เช่น หาผลรวมเป็นช่วง =SUM(C3:C7) เราจะพบว่า เมื่อเราจะทำการเลือก Cell อื่นเพื่อทำการ Copy สูตร สูตรจะเปลี่ยนไปตาม Column ที่เปลี่ยนไป เป็น SUM(D3:D7), SUM(E3:E7) …

ขั้นตอนการทำงาน 1. ไปที่ Cell B3 2. กำหนดค่าตัวแปร Address ไว้ในตัวแปร FirstCell 3. เลื่อนมาล่างสุดของข้อมูล (กดปุ่ม End > กดปุ่มลูกศรลง) 4. กำหนดค่า Address ไว้ในตัวแปร LastCell 5. เลื่อนไปทางขวาสุดของข้อมูล (กดปุ่ม End > กดปุ่มลูกศรไปทางขวา) 6. เลื่อนลง (กดปุ่มลูกศรลง) 7. กำหนดค่า Address ไว้ในตัวแปร LastFormula 8. เลื่อนไปทางซ้ายมือสุด (กดปุ่ม End แล้วกดลูกศรไปทางซ้าย) 9. เลื่อนไปทางขวามือ 1 cell 10. กำหนดค่า Address ไว้ในตัวแปร FirstFormula 11. ระบายตั้งแต่ FirstFormula จนถึง LastFormula 12. กำหนดสูตร หาผลรวมตั้งแต่ FirstCell ถึง LastCell

กำหนดข้อมูลดังนี้

ขั้นตอนการเขียนโปรแกรม ให้สร้าง Procedure ดังนี้ และสร้างปุ่มเรียกใช้ Procedure Sub SumAmount_02() Range("C3").Select Firstcell = ActiveCell.Address(False, False) Selection.End(xlDown).Select lastcell = ActiveCell.Address(False, False) Selection.End(xlToRight).Select Datarange = Firstcell & ":" & lastcell ActiveCell.Offset(1, 0).Select LastFormula = ActiveCell.Address Selection.End(xlToLeft).Select ActiveCell.Offset(0, 1).Select FirstFormula = ActiveCell.Address FormulaArea= FirstFormula & ":" & LastFormula Range(FormulaArea).Select Selection.Formula = "=Sum(" & Datarange & ")" End Sub

แบบฝึกหัด ให้ลองเปลี่ยนคำสั่งใน Procedure ดังนี้ และสร้างปุ่มเรียกใช้ Procedure Sub SumAmount_02() Range("C3").Select Firstcell = ActiveCell.Address(True, True) Selection.End(xlDown).Select lastcell = ActiveCell.Address(True, True) Selection.End(xlToRight).Select Datarange = Firstcell & ":" & lastcell ActiveCell.Offset(1, 0).Select LastFormula = ActiveCell.Address Selection.End(xlToLeft).Select ActiveCell.Offset(0, 2).Select FirstFormula = ActiveCell.Address FormulaArea= FirstFormula & ":" & LastFormula Range(FormulaArea).Select Selection.Formula = "=Sum(" & Datarange & ")" End Sub

คำสั่ง กรณีนี้ตัวแปร DataRange ควรจะเป็น Relative เสมอ เพื่อให้สูตรมีการเปลี่ยนแปลงตามที่ควรจะเป็น ดูค่าที่เปลี่ยนไปจากแบบฝึกหัด ActiveCell.Formula คือ การตั้งสูตรไว้ใน Cell ที่อยู่ เป็นการกำหนดสูตรให้กับ Cell ที่กำลัง Active เพียง Cell เดียว Selection.Formula คือ การกำหนดสูตรให้กับบริเวณที่เลือกระบายไว้ทั้งหมดทุก Cell

แบบฝึกหัด นิสิตไม่ต้องพิมพ์ สามารถ Copy Code ไปใส่ใน Program แล้ว Run คำสั่งเพื่อศึกษาการทำงาน

สร้างตารางตามแบบฝึกหัด

เขียนโปรแกรม จากนั้นสร้างปุ่ม Test Range_01 ให้กับชุดคำสั่ง TestRange_01 คำสั่ง แสดงที่อยู่ของ Cell ในรูปแบบ Absolute Address จะมี $ ปรากฏทั้งแนว Row และแนว Column เช่น Firstcell = ActiveCell.Address Sub TestRange_01() Range("B3").Select Firstcell = ActiveCell.Address Selection.End(xlDown).Select Selection.End(xlToRight).Select lastcell = ActiveCell.Address Cellrange = Firstcell & ":" & lastcell MsgBox Cellrange End Sub

เขียนโปรแกรม จากนั้นสร้างปุ่ม Test Range_02 ให้กับชุดคำสั่ง TestRange_02 คำสั่งแสดงที่อยู่ของ Cell ในรูปแบบ Relative Address เช่น Firstcell = ActiveCell.Address(False, False) Sub TestRange_02() Range("B3").Select Firstcell = ActiveCell.Address(False, False) Selection.End(xlDown).Select Selection.End(xlToRight).Select lastcell = ActiveCell.Address(False, False) Cellrange = Firstcell & ":" & lastcell MsgBox Cellrange End Sub

แบบฝึกหัดในห้องเรียนให้นิสิตสร้าง Procedure เพิ่มซึ่งสามารถคำนวณผลรวมตามแนวนอนได้ ดังรูป