ฉันจะเพิ่ม VBA ใน MS Office ได้อย่างไร


21

ฉันเคยเห็นโพสต์แสดงคำตอบที่ใช้โค้ด / มาโครVBA ( Visual Basic สำหรับแอปพลิเคชัน ) อย่างไรก็ตามฉันยังได้บันทึกข้อคิดเห็นเพิ่มเติมในภายหลังเกี่ยวกับวิธีการใช้ VBA (วิธีการนำไปใช้และดำเนินการ) ฉันหวังว่านี่จะช่วยในการเรียกใช้งานโค้ด

ดังนั้นคำถามของฉันคือ:

ฉันมีรหัส VBA บางส่วน ฉันจะเพิ่ม VBA ในโครงการ MS Excel หรือ Word หรือ Outlook ได้อย่างไร


1
ฉันพยายามสร้างคำถามที่เป็นที่ยอมรับ รู้สึกอิสระที่จะเพิ่มคำถามอื่น ๆ ที่ฉันสามารถอ้างอิง / เราสามารถปิดเพิ่มแท็กหรือแก้ไขคำถามหรือคำตอบเพื่อปรับปรุงหรือตอบคำถาม
เดฟ

ที่เกี่ยวข้อง: superuser.com/q/794590/346288 - ง่าย "kickstart" สำหรับการดีบักโค้ด VBA
Hannu

คำตอบ:


19

เพื่อเปิดตัวแก้ไข VBA ในใด ๆ ของ Microsoft Office สินค้า1กด+AltF11

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

หากก่อนหน้านี้ให้ดูที่ Project Explorer และค้นหาโครงการที่เกี่ยวข้องกับไฟล์ที่คุณกำลังทำงานอยู่

หากคุณต้องการให้รหัสของคุณถูกเรียกใช้โดยเหตุการณ์ที่เกี่ยวข้องกับแผ่นงานเฉพาะ (เช่นรหัสควรเรียกใช้ทุกครั้งที่มีการเปลี่ยนแปลงค่าใน Sheet1) คุณควรดับเบิลคลิกที่วัตถุแผ่นงานที่ระบุใน Project Explorer นี่จะเป็นการเปิดกล่องข้อความที่คุณสามารถวางรหัสได้ หากเหตุการณ์นั้นเกี่ยวข้องกับทั้งเวิร์กบุ๊กแทนที่จะเป็นชีตที่เฉพาะเจาะจง (เช่นรหัสควรทำงานเมื่อบันทึกเวิร์กบุค) ดับเบิลคลิกที่ThisWorkbookวัตถุใน Project Explorer

อย่างไรก็ตามหากคุณไม่ต้องการให้รหัสถูกเรียกโดยเหตุการณ์คุณจะต้องวางรหัสในโมดูล หากมีรหัสอื่นในเอกสารหรือสมุดงานให้พูดจากแมโครที่บันทึกไว้มันจะปรากฏในโมดูล หากมีโมดูลที่มีอยู่ในกรณีส่วนใหญ่คุณจะต้องวางรหัสของคุณในโมดูลเดียวกันด้านล่างรหัสที่มีอยู่ โมดูลที่มีอยู่จะแสดงอยู่ใน Project Explorer

หากไม่มีโมดูลอยู่คุณจะต้องแทรกโมดูลใหม่ หากต้องการทำสิ่งนี้ให้เลือกModuleจากInsertเมนูแบบเลื่อนลงในหน้าต่างตัวแก้ไข VBA สิ่งนี้จะแทรกโมดูลใหม่และแสดงหน้าต่างข้อความภายในหน้าต่างตัวแก้ไข วางรหัสของคุณที่นั่น

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

อีกตัวเลือกหนึ่งคือใช้Macrosกล่องโต้ตอบ ในการเปิดให้ทำหนึ่งในสิ่งต่อไปนี้:

  • บนViewแท็บของ Ribbon ในMacrosบานหน้าต่าง (ขวาสุด) คลิกMacrosปุ่ม
  • บนDeveloperแท็บในCodeบานหน้าต่าง (ซ้ายสุด) คลิกMacrosปุ่ม
  • กดAlt+F8

กล่องโต้ตอบมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ในตัวอย่างด้านบนคุณสามารถเรียกใช้YourCodeโดย

  • เลือกจากรายการจากนั้นคลิกRunหรือ
  • เลือกจากรายการและคลิกสองครั้ง

______
1ตามฉันสามารถใช้ VBA ใน Excel 2010 Starter Edition ได้หรือไม่ คุณไม่สามารถใช้ VBA ใน Excel 2010 Starter Edition


4

ขั้นตอนเหล่านี้ทำได้โดยใช้ Office 2010 (ยกเว้นที่ระบุไว้เป็นอย่างอื่น) แต่ควรคล้ายกันมากพอสำหรับปี 2007 และ 2013 ฉันทำกับ Excel แต่ความแตกต่างควรจะบอบบาง

ขั้นตอนแรกคือการเพิ่มแท็บนักพัฒนาลงใน Ribbon

ใน Office 2007

  1. คลิก“ เมนูสำนักงาน” ->“ ตัวเลือก(โปรแกรม) ” (“ เมนูสำนักงาน” หมายถึงปุ่มสำนักงานปุ่มที่มุมบนซ้าย) เมนูนี้จะปรากฏขึ้นซึ่งมี“ ตัวเลือกของ Excel”,“ ตัวเลือกของ Word” ฯลฯ ที่ปุ่มด้านล่าง

  2. ในกล่องโต้ตอบตัวเลือกทำเครื่องหมาย“ แสดงแท็บนักพัฒนาใน Ribbon”: เมนูสำนักงาน และคลิก“ ตกลง”

  3. แท็บ“ นักพัฒนา” ใหม่ของคุณควรจะปรากฏขึ้น

ใน Office 2010 และ 2013

  1. คลิกที่ไฟล์ -> ตัวเลือก

  2. เลือกริบบิ้นที่กำหนดเอง

  3. ทางด้านขวาค้นหาผู้พัฒนาและทำเครื่องหมายในช่อง คลิกตกลง

  4. แท็บใหม่ของคุณควรจะแสดงให้คลิกที่มันแล้วคลิกที่Visual Basic

หน้าจอที่น่ากลัวจะปรากฏขึ้นซึ่งเป็นหน้าต่างแก้ไขรหัส VBA

หมายเหตุด้านข้าง : คุณยังสามารถเปิดหน้าต่างแก้ไขรหัส VBA โดยใช้แป้นพิมพ์ลัดAlt+ F11(แม้ว่าแท็บนักพัฒนาจะไม่แสดง)

ภายในหน้าต่างแก้ไขรหัสทางด้านซ้ายคุณควรมีบานหน้าต่างชื่อ Project-VBAProject ในสิ่งนี้ภายใต้วัตถุ Microsoft Excel (ชื่อนี้แตกต่างกันไปขึ้นอยู่กับโปรแกรม (Word, Outlook, ฯลฯ ) ที่คุณใช้) เป็น 'สิ่ง' ที่เรียกว่า ThisWorkbook ดับเบิลคลิกที่ ThisWorkbook

ในตัวอย่างนี้เราจะใช้รหัสต่อไปนี้

sub WarnMeOfDanger()
   MsgBox "Argh, a dragon is behind you!"
end sub 

สิ่งที่กล่าวมาทั้งหมดข้างต้นคือการแสดงเปิดกล่องโต้ตอบเพื่อแสดงข้อความบนหน้าจอ

คัดลอกรหัสและวางลงในแผ่นสีขาวในหน้าต่างแก้ไขรหัส VBA

ตอนนี้ที่ด้านบนของหน้าต่างตัวแก้ไขโค้ด VBA คลิกปุ่มเล่นสีเขียวและคุณควรเห็นข้อความ

ดังนั้นทุกครั้งที่คุณต้องการเรียกใช้รหัสกลับไปที่หน้าจอนี้และกดเล่น!

อย่างไรก็ตามคุณอาจต้องการเพิ่มปุ่มของคุณเอง หากคุณต้องการเพิ่มปุ่มก่อนอื่นให้จดบรรทัดแรกของรหัสWarnMeOfDanger()ไว้ นี่คือชื่อจริงของ ' subroutine ' ของเรา เราจะจดจำสิ่งนี้ไว้ในภายหลัง ตอนนี้เพียงปิดหน้าต่างที่คุณใช้อยู่ (รหัสจะถูกบันทึกโดยอัตโนมัติ)

ยังคงอยู่ในริบบิ้นนักพัฒนาคลิกที่แทรกและเลือกรายการแรกซึ่งเป็นปุ่ม เคอร์เซอร์เมาส์ของคุณกลายเป็นกากบาทเล็กน้อย (ไม่โกรธฉันหมายถึงรูปร่างหน้าตา) วาดขนาดของปุ่ม หน้าต่างใหม่จะปรากฏขึ้นและควรแสดงตัวเลือกให้เรากำหนดปุ่มให้กับฟังก์ชั่น ThisWorkbook.WarnMeOfDangerในกรณีนี้เราจะเห็นสิ่งที่ต้องการ คลิกที่นี้และคลิกตกลง

ตอนนี้ถ้าคุณกดปุ่มใหม่ข้อความจะปรากฏขึ้น คลิกขวาที่ปุ่มเพื่อรับตัวเลือกเพื่อย้ายเปลี่ยนข้อความปรับขนาด ฯลฯ


คำถามและคำตอบโดยบุคคลเดียวกัน? แปลก .......
Prasanna

2
@rasanna เมื่อคุณถามคำถามคุณมีตัวเลือกให้ตอบทันที โปรดจำไว้ว่ามันเป็นเว็บไซต์ถาม - ตอบตราบใดที่เกี่ยวข้องและมีประโยชน์ฉันคิดว่ามันเป็นที่ยอมรับ มีไม่กี่รอบเหล่านี้
เดฟ

ฉันไม่รู้จนกระทั่งบัดนี้ ขอบคุณสำหรับข้อมูล
Prasanna

2
คุณสามารถแทนที่หลายขั้นตอนแรกเพื่อเข้าถึงหน้าต่างรหัสด้วย "Alt + F11" แบบง่าย :)
Ƭᴇcʜιᴇ007

@ Ƭᴇcʜιᴇ007อย่าลังเลที่จะแก้ไข :) +1
เดฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.