Excel Function Add-ins คือฟังก์ชัน Excel ที่ผู้ใช้งานพัฒนาขึ้นมาใช้งานเองนอกเหนือจากฟังก์ชันที่มากับ Excel ด้วย Tools อื่น หรือพัฒนาด้วย VBA บน Excel แล้วบันทึกไฟล์นั้นเป็น Add-Ins (*.xla, *.xlam) เพื่อนำมาใช้ซ้ำกับไฟล์ใด ๆ ก็ได้ ทั้งนี้เพื่ออำนวยความสะดวกในการหาผลลัพธ์ใด ๆ ที่ฟังก์ชั่นใน Excel ไม่สามารถทำได้เช่นการแสดงรายชื่อไฟล์ที่เปิดอยู่ทั้งหมด หรือทำได้แต่มีความซับซ้อนสูงเช่นการนำข้อมูลจากหลายไฟล์หลายชีตมารวมกันในชีตเดียว เป็นต้น
แนวทางการพัฒนา Excel Function Add-ins ทำได้ 2 แนวทางหลักคือ
- พัฒนาด้วย VBA ได้เป็นไฟล์ Excel มีนามสกุลเป็น .xla หรือ .xlam
- พัฒนาด้วย Tools อื่น ๆ เช่น Visual Studio ได้เป็น File .xll
บทความนี้จะกล่าวถึงแนวทางในการพัฒนาด้วย Visual Studio ซึ่งประกอบด้วย
- Visual Studio เป็นเครื่องมือสำหรับพัฒนา Application
- Excel-DNA Package เป็น .Net Library สำหรับสร้าง Excel Add-ins ที่จะต้องติดตั้งใน Project เพื่อช่วยบรรจุไฟล์ทั้งหลายให้อยู่ใน .xll ไฟล์เดียว ต้้งแต่ Visual Studio 2017 เป็นต้นมาสามารถใช้ NuGet เข้ามาช่วยในการติดตั้ง ทำให้การติดตั้งทำได้ได้โดยสะดวก
ขั้นตอนหลักการสร้าง Excel Function Add-ins
- สร้าง Project แบบ Class Library (.Net Framwork) ใน Visual Basic หรือ C# หรือ F#
- ใช้กล่องโต้ตอบ Manage NuGet Packages หรือ Package Manager Console เพื่อติดตั้ง Excel-DNA ด้วย Statement
PM> Install-Package ExcelDna.AddIn
- เขียน 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;
}
}
- Compile Project ด้วย Visual Studio จะได้เป็นไฟล์ .xll
- โหลดเข้ามาใช้งานที่ Excel โดยเข้าเมนู File > Options > Add-ins > ที่ Manage เลือก Excel Add-ins > Browse > เลือกไฟล์ .xll
ตัวอย่างการใช้งานใน Excel ที่เซลล์ใด ๆ คีย์เพื่อแสดงข้อความ “Hello World!”
=SayHello("World!")
ข้อดีของการพัฒนา Excel Add-ins ด้วย Visual Studio และ Excel-DNA Package
- มี Intellisense ในการเขียน Code ทำให้สะดวกในการพัฒนา
- สามารถเขียนคำอธิบายแต่ละ Argument ได้เช่นเดียวกับฟังก์ชั่นที่มากับ Excel มี Function Tool Tips แสดงให้เห็นในขั้นตอนของการเขียนสูตรใน Worksheet
- เป็นฟังก์ชันที่ทำงานรวดเร็ว
ศึกษาเพิ่มเติมได้ที่ Excel-DNA, Excel-DNA or Why Are You Still Using VBA
กรณีมีปัญหาการใช้งาน Microsoft Excel and VBA สามารถสอบถามได้ที่ Excel Forum