ข้อมูลสาํ หรับการออกแบบ
ตารางพืน้ ท่หี น้าตดั เหล็ก ต้องทําตารางสําหรับค้นหาข้อมลู ต้องจดั ทําไว้ก่อน
ขนาด พืน้ ท่ี นํา้ หนกั ควรทําแยกไว้อีก Sheet เพ่ือความสะดวกในการเพิ่มลดข้อมลู
มม. ตร.ซม. กก./ม. (อยใู่ น Sheet "DATA")
RB6 0.283 0.222
RB9 0.636 0.499
DB12 1.130 0.888
DB16 2.010 1.578
DB20 3.140 2.466
DB25 4.910 3.853
DB32 8.040 6.313
2
1.สว่ นที่เป็ นคณุ สมบตั วิ สั ดุ ให้ทําเป็ นสตู รไว้ในเซล (หรือจะทําเป็ น Form ให้กรอกข้อมลู ก็ได้)
2.สว่ นที่ 2 คณุ สมบตั ขิ องแผน่ พืน้ จะใช้วิธีกรอกใน Form
ขัน้ ตอนการสร้าง Form 02 เลือก เลือก
01 Developer
0 คลิก Visual Basic
3
2.คลกิ ท่ี Visual Basic คลกิ Insert คลกิ UserForm
ในช่อง Name พิมพ์ "Draw" (ชื่อ Form)
3
3.เปลีย่ นสีพืน้ Form คลกิ DropDown เลือกสี ToolTip
4.ชอ่ ง Caption พมิ พ์ "ออกแบบพืน้ สองทาง" เพื่อเปล่ยี นช่ือ Title ของ Form
5.นํา Label มาเขียนข้อความ
01 เลือก
6.เปล่ียนขนาดตวั อกั ษร ชอ่ ง Caption พิมพ์ "ขนาดพืน้ "
เลือกรูปแบบตวั อกั ษร และขนาดตวั อกั ษร
TextAligh เลอื ก 2-fmTextAlignCenter
ปรับตวั หนงั สือให้อยกู่ ลางชอ่ ง
0 คลิก 4
1
7.ปรับสีพืน้ หลงั คลกิ ท่ี Label ขนาดพืน้ เลือก BackColor เลือก Palette เลือกสี
8.สร้าง Label "กว้าง" จะสร้างใหม่ หรือ Copy Label "ขนาดพืน้ " มาปรับแตง่ ก็ได้
9.สร้าง TextBox สาํ หรับกรอกข้อความ ความกว้าง
01 เลือก TextBox
10.ตงั้ ชื่อ TextBox ในช่อง (Name) เปลีย่ นเป็ น W ช่ือ Textbox จะเป็ นตวั แปรสําหรับใช้งาน
ปรับขนาดตวั หนงั สอื Font ,TextAlign
11.ตงั้ คา่ เริ่มต้น สําหรับใช้งาน ชอ่ ง Value พมิ พ์ "4.00"
12.Copy กว้าง มาสร้าง Label เป็ น ม.
5
13.Copy กว้าง TextBox และ ม. มาสร้าง คําสงั่ ป้ อนข้อมลู ตามแบบ
ควรปรับขนาดตา่ งๆ สี ให้ครบก่อนแล้ว Copy
จะทําให้การปรับแตง่ ตวั ท่ี Copy น้อย
(ไมเ่ ชน่ นนั้ จะต้องปรับทกุ ครัง้ ทกุ ป่ มุ )
ใน TextBox แตล่ ะตวั ต้อง เปลีย่ นช่ือ และ คา่ เริ่มต้นให้ตรงตามที่ต้องการ
ช่ือ TextBox กว้าง = W ,ยาว = L ,หนา = t ,LL = LL ,Top = LL1 ,DL =DL ,ระยะห้มุ = CT
คา่ เร่ิมต้นในช่อง DL ไมต่ ้องมี จะให้คา่ ปรับตาม ความหนาพืน้ เม่ือพมิ พ์ความหนา
14.ใส่ Combo Box เลือกชนิดพืน้ ตามกรณี
เลือก
01 ComboBox
เปลีย่ นช่ือ ComboBox เป็ น "Stype"
15.สร้าง Event เมื่อพิมพ์ความหนาเสร็จ ให้คา่ DL เปลี่ยนตาม
ดบั เบลิ คลกิ ท่ี TextBox "t" (หนา) จะมี Editor สําหรับเขียน Code
Event มาตราฐานท่ีโปรแกรมสร้างให้ Private Sub t_Change() ต้องเปล่ยี นเป็ น Event "Exit"
01 ลบออก คลกิ DropDown บนขวา
เลือก "Exit"
จะได้ Event "Exit"
6
16.พิมพ์ Code ตามตวั อยา่ ง DL = ความหนา*2400
ทดลองใช้ Code ที่ พมิ พ์ Me. ใช้แทนช่ือ Form ที่ใช้งาน
0 คลิก
2 Run
ทดลองเปลี่ยนตวั เลข ความหนา คา่ DL จะเปลีย่ นตาม
Event Exit เมื่อออกจาก TextBox คา่ DL จะเปล่ยี น
หมายเหตุ การกรอกข้อมลู จะเร่ิมจากบนมาลา่ ง เมื่อกด Enter แล้ว TextBox ไมเ่ ล่อื นไปตามท่ีต้อง
ปรับแก้โดย คลกิ ขวาที่ Form
02 คลิก
01 คลิก
เลือกช่ือคาํ สงั่ คลกิ ท่ี Move Up ,Move Down เล่อื นตําแหน่ง
เมื่อกด Enter คําสงั่ จะเลอ่ื นจาก บนลา่ ง
7
17.การตงั้ คา่ เริ่มต้นให้ ComboBox "Stype" ดบั เบลิ คลกิ ท่ีชอ่ งวา่ งใน Form
01 ลบออก คลกิ DropDown บนขวา
เลือก "Initailize"
Event เมื่อเปิ ด Form
18.พมิ พ์ข้อความตามตวั อยา่ ง
เร่ิมจาก Me.Stype.Clear เพื่อลบข้อมลู เดมิ
เพิ่มข้อมลู ให้เลอื กใน DropDown
19.คลกิ ท่ี ComboBox "Stype" ปรับแตง่ ตามรายการ
20.ดบั เบลิ คลกิ ท่ี Draw คลกิ Run ลองคลกิ Dropdown จะมีเลขให้เลือก
8
21.สร้าง CommandButton "คาํ นวณ" แก้ Caption เป็ น "คาํ นวณ" แก้ (Name) เป็ น "Cal"
01 เลือก CommandButton
22.ดบั เบลิ คลกิ ท่ี "คํานวณ" เขียน Code ตามตวั อยา่ ง
02 ตวั แปร Global
03 Function ที่ตอ้ งสร้างข้ึนมา
04 Module ท่ีใหม้ า ใชต้ ดั ขอ้ ความ
9
23.การเขียน Code จะมี การสร้าง Function ขนึ ้ มาใช้งานชื่อ Cmoment ใช้สําหรับค้นหา สมั ประสทิ ธ์ิโมเมนต์
ขัน้ ตอนการสร้าง Function สาํ หรับใช้งานได้หลายครัง้
ก่อนเขียน Code ต้องสร้าง Sheet ชื่อ "DATA" เก็บข้อมลู สมั ประสทิ ธ์ิโมเมนต์พืน้ สองทาง และขนาดเหลก็
(ในโปรแกรมได้สร้างไว้ให้แล้ว ดจู ากหน้า 2)
01 คลิก Module
โปรแกรมสร้าง Module ขนึ ้ มาชื่อ Module1 พมิ พ์ Code ตามตวั อยา่ ง
โปรแกรมให้ไปค้นหาข้อมลู ใน Sheet "DATA" มาใช้งาน
การสง่ ข้อมลู กบั โดยใช้ช่ือ Function เป็ นตวั สง่ ในที่นีค้ ือ Cmoment
Cmoment ที่สง่ กลบั มีหลายตวั โปรแกรมจะนําคา่ ที่ต้องการมาตอ่ กนั คนั่ ด้วย "-"
Cmoment = Cs-ตอ่ เนื่อง ,Cs-ไมต่ อ่ เน่ือง , Cs+ ,Cl-ตอ่ เนื่อง ,Cl-ไมต่ อ่ เนื่อง ,Cl+
ตวั แปรในโปรแกรมท่ีมารับข้อมลู Cmoment คือ cc
10
ตวั อยา่ ง คา่ m = อตั รสว่ นด้านสนั้ /ด้านยาว
ตวั อยา่ งพืน้ ขนาด 3.00*4.00 ม. คา่ m = 3/4 =0.75 ตดั เศษออก m = 0.70
ถ้าเป็ นพืน้ กรณีท่ี 5
คา่ Cmoment = 0-0.0472-0.072-0-0.033-0.050
คา่ Cmoment จะสง่ คา่ กลบั ไปเก็บไว้ท่ี cc
การตดั คาํ
CutWord("-",cc,1) ตดั คาํ ด้วยเคร่ืองหมาย "-" ได้คา่ ตวั ท่ี 1
นําคา่ ที่ได้ไปใสไ่ ว้ตามเซลที่กําหนด
FormatNumber สาํ หรับตดั ทศนิยมเหลอื 3 ตําแหนง่
11
24.เม่ือได้ cc จะต้องนํา cc มาตดั คาํ ออก โดยใช้ Public sup ช่ือ "Cutword" (ได้จดั ทําไว้ให้แล้ว Module
"QuickDesign") นําคา่ C ท่ีได้ไปใสใ่ นตาราง คา่ สมั ประสทิ ธิ์พืน้ สองทาง
01 เลือกขนาดเหลก็
คา่ โมเมนต์ M และพืน้ ท่ีหน้าตดั เหลก็ AS ใสส่ ตู รไว้ในเซล
25.การเลอื กขนาดเหลก็ จะใช้ ActiveX Control "ComboBox" มาใสใ่ น Sheet
คลกิ ขวาท่ี ComboBox
คลกิ Properties
เปลี่ยน Name เป็ น "Com2"
26.คลกิ ขวาท่ี ComboBox เลอื ก Event "DropButtonClick" เพ่ือใสค่ า่ เริ่มต้น
เอาคา่ ขนาดเหลก็ ท่ีแสดงให้เลอื กจาก Sheet "DATA"
สร้าง Event "Com2_LostFocus" เพ่ือ Clear คา่ เดมิ ใน ComboBox "Com2"
12
27.คลกิ ขวาท่ี ComboBox เลอื ก Event "Click" เพ่ือเลือกขนาดเหลก็ และคาํ นวณระยะห่างเหลก็ เส้น
เขียน Code ตามตวั อยา่ ง
WSH = Sheet ใช้งาน
WSH1 = Sheet "DATA"
For i = 1 To 3
วน Loop ทําที่ละบรรทดั
เช็คเหลก็ กนั ร้าว
ลองคลกิ เลือกขนาดเหลก็ จะได้ระยะหา่ ง โดยปัดเศษครัง้ ละ 5 ซม
13
28.การเลือกขนาดเหลก็ ตามด้านยาว จะสร้าง ComboBox ช่ือ "Com3" ขนึ ้ มา
ปรับแตง่ และสร้างคา่ ตา่ งๆ เหมือนขนั้ ตอนทํา "Com2"
29.สร้าง CommandButton แก้ Caption เป็ น สเกล สาํ หรับเปิ ด Form "ScaleDraw"
(ต้องสร้าง Form "ScaleDraw" ก่อน)
ดบั เบลิ คลกิ "สเกล"
เขียน Code ตามตวั อยา่ ง สําหรับเปิ ด Form ScaleDraw
30.สร้าง Form ใหมช่ ่ือ ScaleDraw ตามขนั้ ตอนสร้าง Form สําหรับเก็บสเกล และจดุ เร่ิมต้นเขียนแบบ
สร้างป่ มุ คาํ สงั่ ตามตวั อยา่ ง (ถ้าไมต่ ้องการแก้รายละเอียดมาก ให้ Copy มาจาก Form "Draw")
TextBox ความยาวชื่อ "TL"
TextBox จดุ /ซม. ช่ือ "SC"
CommandButton "Close" ใช้ปิ ด Form และเปิ ด Form "Draw"
CommandButton "Pan" ใช้สาํ หรับทํางานใน Excel ถ้าไมม่ ีจะออกจาก Form เข้า Sheet Excel ไมไ่ ด้
CommandButton "OK" ใช้สําหรับทํางานใน Form
14
CommandButton "วดั ระยะ" ใช้สําหรับหาสเกลของจอตอ่ 1 ซม.
ดบั เบลิ คลกิ ที่ "วดั ระยะ"
ความยาว L=Cobj.Width
ระยะที่วดั จากจอ (TL)
สเกล = L/TL
เก็บใน Excel
เก็บมมุ ซ้าย ใน Excel
เก็บมมุ บน ใน Excel
การทํางาน คอื ใช้คําสงั่ เขียนเส้นของ Excel เขียนเส้นในตําแหน่งท่ีจะสร้างรูป
ใช้บรรทดั วดั ระยะเส้นที่เขียนในจอวา่ ยาวกี่ ซม. นําไปกรอกในช่องความยาว
สเกล (SC) = ความยาวเส้นในจอ(จดุ ) / ความยาวเส้นท่ีวดั ได้
การทํางานโปรแกรม เมื่อ Run
ใช้บรรทดั วดั ระยะเส้นที่เขียนในจอวา่ ยาวกี่ ซม. นําไปกรอกในชอ่ งความยาว
กด "วดั ระยะ" โปรแกรมจะมี Message Box ให้เลอื กเส้น
เม่ือเลือกเส้นจะมีคา่ ในชอ่ ง จดุ /ซม. (ความยาวเส้น Excel วดั เป็ นจดุ )
จากนนั้ โปรแกรมจะนําคา่ ไปเก็บไว้ใน Sheet Excel
คา่ จดุ /ซม. เก็บไว้ท่ี Cells(26,7)
คา่ จดุ เร่ิมต้นเส้นวดั จากซ้ายมือ เก็บที่ Cells(26,7)
คา่ จดุ เริ่มต้นเส้นวดั จากด้านบน เก็บท่ี Cells(26,8)
15
CommandButton "จดุ เขียน" ใช้สําหรับหาจดุ เร่ิมต้นสําหรับเขียนแบบ จากตาํ แหน่งเซล
ผลรวมความกว้าง Row
เก็บใน Excel
ผลรวมความกว้าง Column
เก็บใน Excel
31.สร้าง CommandButton แก้ Caption เป็ น เขียนแบบ สําหรับเปิ ด เขียนแบบหน้าตดั คาน
ดบั เบลิ คลกิ "เขียนแบบ"
เขียน Code ตามตวั อยา่ ง
กาํ หนดจุด ซา้ ย-บน
16
กาํ หนดจุด Polyline
การ Call คอื การเรียกใช้ Module ท่ีสร้างขนึ ้ มา Dimen และ InsertTextbox
โปรแกรมจะเขียน Dimension และใสจ่ ดุ เหลก็ โดยการวน Loop เขียนท่ีละจดุ
SC คอื การสเกลเพ่ือปรับตําแหน่งจดุ
17
32.สร้าง Module Public sub "Dimen" เขียนเส้น Dimension และตวั เลขขนาด
33.สร้าง Module Public sub "InsertTextbox" เขียนเส้น TextBox และกําหนดคา่ ตา่ ง
จาก Code สว่ นใหญ่จะเป็ นการใช้ Shape ในการเขียนแบบเส้นตา่ ง ตวั หนงั สือ
ต้องอาศยั ความรู้ทางคณิตศาสตร์ และการกําหนดคา่ พกิ ดั ตา่ งๆ
คา่ พกิ ดั สําหรับเขียนแบบใน Excel กําหนดดงั นี ้
แกน X ทิศทาง บวก
จุด 0,0 มุมบนซา้ ย cell (A1)
แกน Y ทิศทางบวก
แบบที่เขียนจะปรับขนาด ตามขนาดกว้าง-ยาวของพืน้ ใสร่ ะยะหา่ งเหลก็ ตามสเกล
ใสข่ นาด Dimension และขนาดเหลก็ ตามทีคํานวณได้
รูปท่ีสร้ างช่วยกําหนดพิกดั
สร้ างตามสเกล
18
34.สร้าง CommandButton แก้ Caption เป็ น ลบแบบ สาํ หรับลบแบบหน้าตดั คาน
ดบั เบลิ คลกิ "ลบแบบ"
เขียน Code ตามตวั อยา่ ง
Cobj.Type ชนิดของ Shape 17 = TextBox , 9 = Line , 5 = Polyline (FreeForm)
35.สร้าง CommandButton แก้ Caption เป็ น "Group" สาํ หรับทํารูปท่ีเขียนให้เป็ น Group เดยี วกนั
เล่อื นรูปไปพร้อมกนั
ดบั เบลิ คลกิ "Group"
เขียน Code ตามตวั อยา่ ง
19
36.สร้างคาํ สง่ั Close ,Pan ,OK
20
ภาคผนวก
ภาคผนวก 1 การใช้ Help ค้นหาข้อมูลสาํ หรับเขียนโปรแกรม
คลกิ ท่ี VBA Editor เปิ ด Editor ต้องเลือก Help Editor
คลกิ ท่ี Help คลกิ Microsoft Visual Basic Help F1
จะมี Excel Help
ถ้าต้องการค้นข้อมลู พิมพ์ข้อความใน
ช่อง Search ……..
เชน่ พมิ พ์ Shape
1
จะมีหวั ข้อการเขียน VBA เกี่ยวกบั เร่ือง
Shape ให้เลือก
ลองคลกิ ท่ี Shape.scaleHeight Method
มีการอธิบายรายละเอียดการใช้งาน 2
บางที่ก็มีตวั อยา่ งการเขียน Code ให้ด้วย
การใช้งาน Visual Basic for Application Language Reference
เมื่อคลกิ ท่ี Help
จะมีคมู่ ือการเขียน VBA อธิบายการเขียนโปแกรมตงั้ แตเ่ ร่ิม
สว่ นของคมู่ ือที่จําเป็ นต้องค้นหาสําหรับการเขียนโปรแกรม คือ การค้นหา Error ท่ีเกิดขนึ ้
คลกิ ท่ี Visual Basic Language Reference
3
คลกิ ท่ี Error Messages
ตวั อยา่ งเม่ือเกิด Error จะมีข้อความแสดงวา่ Error อะไร
คลกิ ท่ี Help จะคาํ อธิบาย
ค้นหาใน Error Massages
คลกิ ท่ี Type mismatch(Error 13) 4
คาํ อธิบาย Error ท่ีเกิดขนึ ้ ต้องอา่ นดแู ละนําไปแก้ไขใน Code ท่ีเขียน
Error Masages ท่ีจะมีในการเขียนโปรแกรม
ใช้ Module ผดิ ประเภท
ต้งั ชื่อคาํ ส่ังซ้าํ
5
เม่ือต้งั ชื่อตวั แปรซ้าํ ในคาํ สงั่ เดียวกนั
เม่ือ เรียกใชต้ วั แปรที่ยงั ใชง้ านอยู่ จะเรียกไม่ได้
พิมพช์ ื่อ File ผดิ
ใช้ if แลว้ ไม่มี End If ตอ้ งหาตาํ แหน่งใส่ End if
6
ใช้ Clipboard ไม่ได้
ออกจาก Excel ไม่ได้ ทาํ งานไม่เสร็จ
7
เปิ ด Form ไม่ได้ ตอ้ งปิ ด Form อื่นก่อน
มี Error เกิดข้ึนในโปรแกรม ชื่อ........... (กรณีมี Password)
8
Disk เตม็
ตวั หารท่ีคา่ เป็น ศนู ย์ แกไ้ ขตวั หารไม่ใหค้ ่าเป็นศนู ย์
เกิด Error ตอน Load ขอ้ มูล
การทาํ งานของคาํ ส่งั ซบั ซอ้ นมาก ควรแยกคาํ สั่งออกจากกนั เป็นคาํ ส่งั ยอ่ ย
9
Save ชื่อ File ซ้าํ ชื่อเดิม
คน้ หา File หรือเปิ ด File แตห่ าชื่อ File ไม่เจอ อาจพิมพผ์ ดิ หรือ กาํ หนด Path ผดิ
คาํ สั่งในคาํ สัง่ เดียวกนั เกบ็ ไดไ้ ม่เกิน 64K ตอ้ งแยกออกเป็นคาํ สัง่ ยอ่ ย
ตวั แบบท่ีกาํ หนดใน For Each ตอ้ งเป็นตวั แปรแบบ Varaint
พบบ่อยกรณี ใช้ For และ IF แลว้ ลืม End if
เปิ ด Form พร้อมกนั 2 Form ตอ้ งมีฟอร์มตวั หน่ึงเป็น Modalless
10
ความผิดพลาดจาก VBA เอง
ขอ้ มูลท่ีเรียกทาํ งานไม่ได้
11
ตวั แปรใน Redim ผดิ ใน Array หา้ มใชต้ วั แปร เช่น Dim A(i) as Single ไม่ได้
ตวั แปรท่ีเรียกมีคา่ = "" (Null) หรือตอ้ ง
ตรวจสอบ
ไม่กาํ หนดตวั แปร
12
ขอ้ ความใน 1 บรรทดั ยาวไป แยกดว้ ย _
13
หา Method และ Data ไม่พบ
หา Module ไม่พบ
ปิ ด Form ก่อนทาํ งานอื่นๆ
14
หา Object ไม่พบ หรือไม่ไดก้ าํ หนด
มี ขอ้ ความระหวา่ ง End sub และ Private sub
ขอ้ มลู ท่ีเรียกตวั แปรซ้าํ วน Loop สร้างตวั แปร
หา File ไม่พบ ส่วนใหญ่พมิ พผ์ ดิ
ไม่อนุญาตใหท้ าํ งาน อาจมีการ Lock หา้ มทาํ งาน
15
พมิ พช์ ื่อ Project ผดิ
ไม่มี Error สง่ั ใหท้ าํ งานตอ่
ประมวลผลผดิ พลาด
16
ตวั แปร Array มีคา่ มากกวา่ ที่ประกาศไว้ เช่น A(5) แตก่ าํ หนดตวั แปร A(6)=5
17
18
ใชต้ วั แปรผดิ ประเภท
เขียนขอ้ มลู ใน Disk ไม่ได้
ไม่ไดป้ ระกาศตวั แปร สวน่ มากลืมใส่ " ....... "
19
คา่ Index ของตวั แปรผดิ
20