🤓 อยากเรียนเล่มไหนครับ ... เล่มบนสุด VBA ของ Excel 2010 หนาขนาดนี้ ถ้าเป็น Excel 365 จะหนาขนาดไหน
.
เรื่องของ Excel VBA ที่มาเรียนกันในห้องแค่ 2 วัน หรือชมคลิปไม่กี่ชั่วโมงนั้นน่ะ เรียนกันได้ไม่ถึง 1 ใน 10 ของเนื้อหาในเล่มหรอกครับ
.
ดังนั้นถ้าคุณคิดจะเรียน VBA ต้องตรวจสอบให้ดีว่า แค่ 2 วันจะเอาความรู้ไปใช้ได้จริงหรือ
.
++++++++++++++++++++++++
.
สมัยก่อนโน้นตอนที่ผมยังไม่ได้สร้างหลักสูตร VBA มีผู้เข้าอบรมท่านหนึ่งที่เป็นถึงผู้อำนวยการฝ่ายสารสนเทศของการไฟฟ้านครหลวง ท่านแอบมาเรียนกับผมหลายคลาสทีเดียว บอกว่าอายุอย่างท่านเนี่ยที่ทำงานเขาไม่ส่งมาเรียนแล้ว
.
ท่านเล่าให้ฟังว่า ได้ไปเรียน VBA กับอาจารย์ท่านหนึ่ง เตือนผมว่าถ้าผมจะสอน VBA อย่าสอนแบบอาจารย์คนนั้นนะ พอสอนเสร็จผู้เข้าอบรมทุกคนก็เอากองไว้หน้าห้อง
.
ผมถามว่า อะไรเหรอครับ กองไว้หน้าห้อง
"ความรู้ที่อาจารย์สอนไงคะ กองทิ้งไว้หน้าห้องนั่นแหละ ไม่ได้เอากลับไปด้วยหรอก"
.
ท่านเล่าว่า อาจารย์คนนั้นสอนแบบเปิดตำราสอน สอนไปให้จดไป ที่สำคัญคือตัวอย่างไม่น่าสนใจเลย ใช้ตัวอย่างเดียวตลอด พอคนเรียนเห็นว่าตัวอย่างไม่น่าสนใจ สมองก็เลิกรับความรู้แล้ว
.
"ถ้าอาจารย์สมเกียรติจะสอน VBA ขอให้ทำตัวอย่างสั้นๆ เยอะๆดีกว่าค่ะ"
.
++++++++++++++++++++++++
.
⏰ ติ้กต้อก ติ้กต้อก ติ้กต้อก เวลาผ่านไป ผมเริ่มสร้างหลักสูตร VBA ของผมเองล่ะทีนี้
.
ผมตั้งหลักไว้ว่า VBA ที่ผมจะสอน ต้องมุ่งใช้ทำงานด้านจัดการข้อมูล ซึ่งเริ่มจากการจัดเก็บ เรียกดู แก้ไข ต้องช่วยให้ทำงานด้านนี้ได้ง่ายขึ้น สะดวก รวดเร็วขึ้น และที่สำคัญรหัส VBA ที่ใช้ต้องสั้นและง่ายต่อความเข้าใจ
.
ถ้าสอนแบบไม่มีเป้าหมายเลย ก็เหมือนกับตำราเล่มหนานี่แหละ ที่มีเรื่องเยอะแยะไปหมด เรียนแบบเฉี่ยวนิดๆ ไม่ได้ลองทำ ไม่ได้เจาะลึก
.
หลักสูตรแรกๆที่ผมสอน เห็นผู้เรียนแต่ละคนแล้วน่าสงสารมาก เพราะแต่ละคนไม่เคยใช้รหัส VBA กันมาก่อน กว่าจะส่งค่าจากเซลล์ไปบันทึกลงไปในตาราง ต้องเขียนรหัสยาวเหยียดเป็นสิบบรรทัด
.
กว่าจะเอารหัสไปสร้างงานได้ต้องเขียนรหัสต่อกันยาวมาก พอลองสั่ง run รหัสคนนั้นผ่าน คนนี้ไม่ผ่าน เครื่อง hang หลายคน ต้องเสียเวลาไปแก้ไขรหัสของแต่ละคนอีก เวลาที่เตรียมไว้สอนหลายเรื่องกลับไม่พอ เพราะต้องมาเสียเวลาแก้ไขให้กับลูกศิษย์แต่ละคนนี่แหละ
.
คิดไปคิดมา ไม่ไหว ไม่สอนแบบที่เขียนไว้ในตำราแล้ว ขอสอนตามวิธีที่ผมใช้เองดีกว่า สอนแบบนอกตำราไปเลย
.
++++++++++++++++++++++++
.
สมมติว่า มีค่าที่กรอกไว้ 5 เซลล์และไม่ติดกันด้วย ต้องการนำไปบันทึกเก็บไว้ในตารางฐานข้อมูล ถ้าใช้รหัส VBA แบบที่ใช้ในตำรา ต้องเขียน 10 บรรทัดเพื่อรับส่งค่าทีละเซลล์
.
ส่วนรหัสแบบที่ผมใช้มีแค่ 2 บรรทัด และสามารถใช้กับการส่งค่าที่ไม่จำกัดจำนวนได้ด้วย ใช้แค่ 2 บรรทัดนี่แหละ
.
MyVar = [Source]
[Target] = MyVar
.
Source กับ Target เป็น Range Name
วงเล็บ [ ] เป็นการเขียนแบบย่อ แทนที่จะต้องเขียนยาวๆว่า Range("Source").Value ก็ใช้แค่ [Source] นี่แหละวิธีของผม
.
จากนั้นก็ลองใช้เจ้ารหัส 2 บรรทัดนี้ว่าสามารถใช้จัดการข้อมูลได้แค่ไหน พบว่าสามารถใช้ช่วยในการจัดเก็บข้อมูล แก้ไขข้อมูล ดึงข้อมูลออกมาแสดงได้ด้วย
.
แทนที่จะต้องสร้างรหัสใหม่ทุกครั้งกับตัวอย่างใหม่ กลายเป็นว่าผู้เรียนจะได้ลองทำกับตัวอย่างเยอะขึ้น และสามารถลดความผิดพลาดในการสร้างงานได้ด้วย
.
พอทดลองแล้วหลายๆรอบก็สร้างหลักสูตรใหม่ขึ้นมา ตั้งชื่อว่า "เคล็ดการเพิ่มผลงาน ลดความซับซ้อนของงานด้วย Excel VBA"
.
ในการสอนหลักสูตรใหม่ครั้งแรก มีคนที่เก่ง VBA มากมาเรียน ไม่ยอมทำตัวอย่างตาม เถียงกลับมาว่ามันจะใช้งานได้ยังไง จนผมต้องบอกให้ลืมความรู้เก่าๆโยนทิ้งไปให้หมด ไม่ต้องมีพื้น VBA มาเรียนเลยก็ได้ ขอให้ลองทำตามแล้วจะพบว่า "วิธีของผม" ใช้ได้ก็แล้วกัน
.
++++++++++++++++++++++++
.
ลอง Download แฟ้มนี้ไปให้คนเก่ง VBA ในบริษัทของคุณดูครับว่าเขาเข้าใจไหมว่ารหัส 2 บรรทัดนั้นทำงานได้ยังไง
.
https://drive.google.com/file/d/1oVIJHm6gjia3NJvXDeqDKgJqY4UPvRL_/view?usp=sharing
.
😍 เชิญ Download คู่มือหลักสูตร Excel Macro / VBA รวม 122 หน้าไปทำความเข้าใจที่ไปที่มาครับ
.
https://drive.google.com/file/d/0Bxpfgh-rqhIWY2VoM1dQSjV4bGc/view?usp=sharing&resourcekey=0-Bzd5vpGazAevUg5NtzjlIw
.
++++++++++++++++++++++++
.
ปล ตอนหลังพบว่า John Walkenbach ผู้เขียนตำรา VBA เล่มบนซึ่งเก่ง Excel ระดับโลก เขาก็แอบใช้รหัสแบบผมเหมือนกัน