ภาพรวม Excel Function Add-ins

Excel Function Add-ins คือฟังก์ชัน Excel ที่ผู้ใช้งานพัฒนาขึ้นมาใช้งานเองนอกเหนือจากฟังก์ชันที่มากับ Excel ด้วย Tools อื่น หรือพัฒนาด้วย VBA บน Excel แล้วบันทึกไฟล์นั้นเป็น Add-Ins (*.xla, *.xlam) เพื่อนำมาใช้ซ้ำกับไฟล์ใด ๆ ก็ได้ ทั้งนี้เพื่ออำนวยความสะดวกในการหาผลลัพธ์ใด ๆ ที่ฟังก์ชั่นใน Excel ไม่สามารถทำได้เช่นการแสดงรายชื่อไฟล์ที่เปิดอยู่ทั้งหมด หรือทำได้แต่มีความซับซ้อนสูงเช่นการนำข้อมูลจากหลายไฟล์หลายชีตมารวมกันในชีตเดียว เป็นต้น

แนวทางการพัฒนา Excel Function Add-ins ทำได้ 2 แนวทางหลักคือ

  1. พัฒนาด้วย VBA ได้เป็นไฟล์ Excel มีนามสกุลเป็น .xla หรือ .xlam
  2. พัฒนาด้วย Tools อื่น ๆ เช่น Visual Studio ได้เป็น File .xll

บทความนี้จะกล่าวถึงแนวทางในการพัฒนาด้วย Visual Studio ซึ่งประกอบด้วย

  1. Visual Studio เป็นเครื่องมือสำหรับพัฒนา Application
  2. Excel-DNA Package  เป็น .Net Library สำหรับสร้าง Excel Add-ins ที่จะต้องติดตั้งใน Project เพื่อช่วยบรรจุไฟล์ทั้งหลายให้อยู่ใน .xll ไฟล์เดียว ต้้งแต่ Visual Studio 2017 เป็นต้นมาสามารถใช้ NuGet เข้ามาช่วยในการติดตั้ง ทำให้การติดตั้งทำได้ได้โดยสะดวก

ขั้นตอนหลักการสร้าง Excel Function Add-ins

  1. สร้าง Project แบบ Class Library (.Net Framwork) ใน Visual Basic หรือ C# หรือ F#
  2. ใช้กล่องโต้ตอบ Manage NuGet Packages หรือ Package Manager Console เพื่อติดตั้ง Excel-DNA ด้วย Statement
    PM> Install-Package ExcelDna.AddIn
  3. เขียน Code เพื่อสร้าง Excel Function ต่าง ๆ ตามต้องการ ยกตัวอย่างด้านล่างนี้เป็นกรณีการพัฒนา Excel Add-ins ด้วย C#
    using ExcelDna.Integration;
    public static class MyFunctions
    {
       [ExcelFunction(Description = "My first .NET function")]
       public static string SayHello(string name)
       {
          return "Hello " + name;
       }
    }
  4. Compile Project ด้วย Visual Studio จะได้เป็นไฟล์ .xll
  5. โหลดเข้ามาใช้งานที่ Excel โดยเข้าเมนู File > Options > Add-ins > ที่ Manage เลือก Excel Add-ins > Browse > เลือกไฟล์ .xll

ตัวอย่างการใช้งานใน Excel ที่เซลล์ใด ๆ คีย์เพื่อแสดงข้อความ “Hello World!”

=SayHello("World!")

ข้อดีของการพัฒนา Excel Add-ins ด้วย Visual Studio และ Excel-DNA Package

  1. มี Intellisense ในการเขียน Code ทำให้สะดวกในการพัฒนา
  2. สามารถเขียนคำอธิบายแต่ละ Argument ได้เช่นเดียวกับฟังก์ชั่นที่มากับ Excel มี Function Tool Tips แสดงให้เห็นในขั้นตอนของการเขียนสูตรใน Worksheet
  3. เป็นฟังก์ชันที่ทำงานรวดเร็ว

ศึกษาเพิ่มเติมได้ที่ Excel-DNA, Excel-DNA or Why Are You Still Using VBA

กรณีมีปัญหาการใช้งาน Microsoft Excel and VBA สามารถสอบถามได้ที่ Excel Forum