:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sup
Member
Member
Posts: 136
Joined: Mon Sep 13, 2010 11:36 am

สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

#1

Post by sup »

เรียน อาจารย์คนควน หรือท่านผู้รู้ครับ

พอดีผมไปหาซื้อหนังสือ VBA มาอ่าน(อยากทำเป็นมั่งครับ) ก็ได้มาครับ และก็ได้สดุดกับหนังสือ VB6 เข้าให้ เลยซื้อมาด้วยพอเอามาอ่านแล้วก็เกิดข้อสงสัยดังนี้ครับ
1. VBA เป็นการเขียนโค๊ตทำงานอยู่บน Excel ส่วน VB 6 เป็นการเขียนโค๊ตคำสั่งภายในระบบ Computer ใช่ไหมครับ(เพราะเห็นบอกว่าเก็บข้อมูลอยู่ในฮาร์ดดิส
2. หากเป็น 2003 จะต้องลงโปรกแกรม VB6ใช่ไหมครับ
3. ความเหมือนของ VBA กับ VB6 ก็คือการเขียน CODE คำสั่งแบบเดียวกัน
4. หากเราเขียน Code VB6 ในเครื่องเราแล้วพอ SAVE ลงฮาร์ดดิสไปแล้วจะย้ายไปอยู่ในเซิฟเวอร์อื่นได้หรือไม่ครับ และทำอย่างไร
5. การเขียนสูตรใน Excel และเขียนสูตรของ VBA เขียนเหมือนกันหรือไม่ครับ
6. การเขียนสูตรบน Excel กับการเขียน Code VBA ของ Excel ด้วยสูตรชุดเดียวกัน หน่วยความจำใช้พื้นที่เท่ากันหรือไม่ครับ
7. การเขียน code VBA แทนการใช้สูตรช่วยให้การทำงานของ Excel เร็วขึ้นไหมครับ โดยเฉพาะสูตรยาวๆ แบบ IF 8-9 ชั้นครับ
8. การเขียนสูตร Link ข้ามไฟล์ กับการเขียน Code VBA ให้ Link ข้ามไฟล์อย่างไหนดีกว่ากัน เพราะอะไรครับ

ต้องรบกวนมากด้วยครับ
ขอบคุณมากครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามข้อข้องใจครับ

#2

Post by bank9597 »

:D ตอบได้บางข้อครับ
VBA เป็นการเขียนโค๊ตทำงานอยู่บน Excel ส่วน VB 6 เป็นการเขียนโค๊ตคำสั่งภายในระบบ Computer ใช่ไหมครับ(เพราะเห็นบอกว่าเก็บข้อมูลอยู่ในฮาร์ดดิส
VBA ย่อมาจาก Visual Basic for Applications เป็นชุดพัฒนาโปรแกรมประยุกต์หรือแอปพลิเคชันด้วยภาษา Visual Basic บน Microsoft Office ดังนั้นไม่ใช่แค่ Excel เท่านั้นครับ ส่วน VB6 นั้นเก็บข้อมูลอยู่ในฮาร์ดดิสหรือไม่อย่างไร ไม่กล้ายืนยัน
ความเหมือนของ VBA กับ VB6 ก็คือการเขียน CODE คำสั่งแบบเดียวกัน
ไม่เหมือนกันครับ คนเก่ง VBA ไม่ได้เขียน VB ได้เสมอไป เพราะรูปแบบการใช้งาน การเขียนคำสั่งมันต่างกันครับ
หากเราเขียน Code VB6 ในเครื่องเราแล้วพอ SAVE ลงฮาร์ดดิสไปแล้วจะย้ายไปอยู่ในเซิฟเวอร์อื่นได้หรือไม่ครับ และทำอย่างไร
เท่าที่ทราบ ข้อมูลทุกย่างจะอยู่ในฮาร์ดดิสหมด แต่จำเพาะด้วยว่าข้อมูลที่เก็บนั้นคืออะไร เช่น ตัวฟอร์มต่างที่เราสร้างจาก VB หรือ ข้อมูลภายในเช่น ตาราง,ตัวอักษระต่าง เท่าที่ทราบ VB ใช้เขียนโปรแกรมให้ไปดึงข้อมูล บันทึกข้อมูล ฯลฯ ได้ สมมุติ เรามีฐานข้อมูล SQL อยู่แล้ว เราก็สามารถเขียนโปรแกรมด้วย VB ให้ไปดึงข้อมูลจากฐานข้อมูล SQL มาแสดงในโปรแกรมของเราได้เหล่านี้ เป็นต้น
การเขียนสูตรใน Excel และเขียนสูตรของ VBA เขียนเหมือนกันหรือไม่ครับ
ลองบันทึกแมโครตอนที่เรากำลังใช้สูตรดูครับ แต่โดยหลักๆแล้วไม่เหมือนครับ
การเขียน code VBA แทนการใช้สูตรช่วยให้การทำงานของ Excel เร็วขึ้นไหมครับ โดยเฉพาะสูตรยาวๆ แบบ IF 8-9 ชั้นครับ
จริงๆแล้ว คำตอบนี้ขึ้นอยู่กับตัวผู้ใช้เป็นสำคัญครับ ถ้าผู้ใช้เก่งเรื่องสูตร ก็ทำได้เร็วกว่า VBA ในทางกลับกันก็เช่นเดียวกันครับ แต่ขึ้นชื่อว่า Excel สูตรหรือฟังก์ชันที่เค้าให้มากับโปรแกรมแล้วนั้น เป็นสิ่งที่ทำงานได้เร็วอยู่แล้วครับ การทำงานบางอย่างเขียนสูตรเร็วกว่าเยอะครับ รวมถึงแสดงผลก้เร็วกว่า VBA ด้วย ให้มองถึงความคุ้มค่าของเวลาครับ ภายในเวลาเท่ากัน ผมคิดว่าเราย่อมเขียนสูตรได้เร็วกว่า VBA ส่วนการจะเปลี่ยนมาใช้ VBA มาแทนสูตรนั้นให้ดูที่ตัวงานเป็นหลักว่ามีการทำงานซับซ้อนแค่ไหน ข้อเสียของสูตรมีอย่างเดียวคือทำให้ไฟล์ทำงานช้าในกรณีที่มีสูตรเยอะๆ แต่ VBA จะไม่เป็นเช่นนั้น ถ้าคุณต้องทำงานกับข้อมูลจำนวนมาก การเลือกใช้ VBA แทนสูตรนั้นก็อาจจะทำได้ครับ
แต่ทั้งนี้ทั้งนั้น มันขึ้นอยู่กับความสามารถของผู้ใช้เป็นสำคัญ ถ้าเราเก่งด้านไหน เราก็เลือกด้านนั้นไปเลยครับ ทุกอย่างขึ้นอยู่กับความชำนาญครับ
การเขียนสูตร Link ข้ามไฟล์ กับการเขียน Code VBA ให้ Link ข้ามไฟล์อย่างไหนดีกว่ากัน เพราะอะไรครับ
สำหรับผมแล้ว ใช้สูตรเร็วกว่าครับ

:D ทั้งหมดที่กล่าวมา ได้รับจากประสบการณ์ที่ได้ใช้มากับตัวเอง หากมีผิดพลาดต้องขออภัยด้วย ตรงนี้แค่แลกเปลี่ยนความคิดครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
sup
Member
Member
Posts: 136
Joined: Mon Sep 13, 2010 11:36 am

Re: สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

#3

Post by sup »

ขอบคุณมากครับคุณ bank9597 ที่ช่วยให้ความรู้

งานของผมมีการใช้สูตรเยอะปริมาณข้อมูลเยอะ และต้อนนี้ก็มีข้อมูลจากหลายหน่วยงานที่สามารถเชื่อมต่อกันได้ แบ่งปันกันได้โดยไม่ต้อง Key ใหม่เหมือนเมื่อก่อน แต่ปัญหาคือการ Link แล้วแสดงผลช้า จึงมองหาวิธีที่จะทำอย่างไรให้การแสดงผลเร็วขึ้นครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

#4

Post by bank9597 »

:D เป็นปัญหาเดียวกันที่ผมเคยเจอครับ

วิธีแก้ไขของผมตอนนี้คือ การแยกไฟล์ออกมา แล้วกำหนดหน้าที่ของไฟล์แต่ละไฟล์ว่าทำอะไร
ไฟล์ Database เก็บข้อมูลอย่างเดียว ไม่มีสูตรใดๆ เก็บข้อมูลทุกอย่างอยู่ในไฟล์นี้
ไฟล์ Input ใช้ในการกรอกข้อมูล แล้วบันทึกไปยังไฟล์ Database รวมถึงแสดงผลด้วย
ไฟล์ Report ใช้ในการแสดงผลลัพธ์ต่างๆ และตัว PrintOut

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

แต่ต่อไปเมื่อมีข้อมูลเพิ่มเยอะมากขึ้น ก็จำเป็นต้องใช้งานโปรแกรมอื่นเข้ามาช่วย เช่น สร้างฐานข้อมูลอย่าง SQL และสร้างแอปพลิเคชั่นอย่าง VB ครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 31177
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

#5

Post by snasui »

:D เพิ่มเติมจากคุณ bank9597 ครับ
sup wrote:1. VBA เป็นการเขียนโค๊ตทำงานอยู่บน Excel ส่วน VB 6 เป็นการเขียนโค๊ตคำสั่งภายในระบบ Computer ใช่ไหมครับ(เพราะเห็นบอกว่าเก็บข้อมูลอยู่ในฮาร์ดดิสก์)
VBA หรือ VB6 หรือ VB.NET เป็นการเขียนคำสั่งภายในระบบ Computer ทั้งนั้นครับ

VBA คุณ bank9597 ได้เขียนอธิบายไว้แล้วว่าเป็นการเขียนโปรแกรมบน Application นั่นหมายความว่า Application นั้น ๆ สามารถที่จะเขียนภาษา Visual Basic เข้าไปจัดการได้ และปกติจะเป็นชุด Microsoft Office ทั้งหลายที่จะมีเครื่องมือสำหรับเขียน VBA มาให้ด้วยคือ Visual Basic Editor (VBE) ไม่ต้องติดตั้งเพิ่ม

VB6 และ VB.NET คือภาษา Visual Basic ที่ใช้เขียนโปรแกรมต่าง ๆ เครื่องมือที่ใช้เขียนคือ Visual Studio ซึ่งจะต้องติดตั้งต่างหาก ไม่ได้มากับ Microsoft Office สำหรับ VB6 เป็น VB รุ่นก่อนส่วน VB.NET เป็น VB รุ่นถัดมา

.NET คือภาวะแวดล้อมในการเขียน Program ซึ่งได้จัดเตรียมส่วนประกอบในการเขียนโปรแกรมต่าง ๆ ไว้ให้เรียบร้อยแล้ว ยกตัวอย่างเช่น กรณีต้องการสร้างตึก สมัยก่อนต้องไปตัดไม้ เลื่อยไม้ตามขนาดต่าง ๆ ไสกบ แล้วค่อยนำมาทำกรอบหน้าต่าง ประตู และอื่น ๆ สมัยปัจจุบัน ไม้ถูกตัด เลื่อยและไสกบมาเรียบร้อยแล้ว สามารถนำไปทำหน้าต่าง ประตูและอื่น ๆ ตามต้องการ
sup wrote:2. หากเป็น 2003 จะต้องลงโปรกแกรม VB6ใช่ไหมครับ
อ่านข้อ 1 ครับ
sup wrote:3. ความเหมือนของ VBA กับ VB6 ก็คือการเขียน CODE คำสั่งแบบเดียวกัน
เขียน Code คำสั่งใช่ครับแต่คนละแบบครับ ถ้าใช้ VB6 เขียนสั่งงาน Excel จะยากกว่ากันมากครับ
sup wrote:4. หากเราเขียน Code VB6 ในเครื่องเราแล้วพอ SAVE ลงฮาร์ดดิสไปแล้วจะย้ายไปอยู่ในเซิฟเวอร์อื่นได้หรือไม่ครับ และทำอย่างไร
ทำได้ครับ ส่วนทำอย่างไรนั้น ปกติย้ายข้อมูลอย่างไรก็ทำอย่างนั้นครับ กรณีเป็นการเขียน Program เพื่อติดต่อ Database ก็ต้องอ้างอิง Server ตัวใหม่ Database ก้อนใหม่ให้ถูกต้องครับ
sup wrote:5. การเขียนสูตรใน Excel และเขียนสูตรของ VBA เขียนเหมือนกันหรือไม่ครับ
ไม่เหมือนกันครับ ใน Excel เขาเขียนสูตรมาให้แล้วเราเพียงแต่ใช้สูตรนั้น ถ้าใน VBA เราสร้างสูตรเองแล้วค่อยนำไปใช้ใน Excel
sup wrote:6. การเขียนสูตรบน Excel กับการเขียน Code VBA ของ Excel ด้วยสูตรชุดเดียวกัน หน่วยความจำใช้พื้นที่เท่ากันหรือไม่ครับ
คิดว่าไม่มีใครเขียนฟังก์ชั่นและจัดการ Memory ได้เก่งเท่ากับฟังก์ชั่นที่ Build-in มากับ Excel ครับ
sup wrote:7. การเขียน code VBA แทนการใช้สูตรช่วยให้การทำงานของ Excel เร็วขึ้นไหมครับ โดยเฉพาะสูตรยาวๆ แบบ IF 8-9 ชั้นครับ
อ่านข้อ 6 ครับ
sup wrote:8. การเขียนสูตร Link ข้ามไฟล์ กับการเขียน Code VBA ให้ Link ข้ามไฟล์อย่างไหนดีกว่ากัน เพราะอะไรครับ
อ่านข้อ 6 ครับ สาเหตุที่ฟังก์ชั่นที่ Build-in มาดีกว่ามีหลายประการ หลัก ๆ เช่นไม่ต้อง Enable Macro ไม่ต้องเสียเวลาเขียนและทดสอบ Code เป็นต้น
sup
Member
Member
Posts: 136
Joined: Mon Sep 13, 2010 11:36 am

Re: สอบถามข้อข้องใจเกี่ยวกับ VBA, VB6 ครับ

#6

Post by sup »

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

ต้องขอโทษด้วยครับ ที่เข้ามาช้าไปหน่อยครับ
ต่อไปคงมีเรื่องรบกวนอยู่เรื่อยๆครับ

ขอบคุณครับ
Post Reply