Lập trình trên Microsoft Office với VSTO 3.0  
 

(Post 12/06/2009) Về bản chất VSTO là một Add-in của Visual Studio (VS). VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay thế VBA trong Excel, Word. Nhưng phải đến phiên bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007.

Giao diện Excel trong VSIDE

Tổng quan về VBA và VSTO

VBA (Visual Basic for Application) từ lâu đã được biết đến như một công cụ lập trình quen thuộc và dễ dùng cho việc phát triển ứng dụng trên nền Office cũng như mở rộng tính năng cho Office (sau đây xin gọi chung là ứng dụng nền). Tuy nhiên, vì đã ra đời khá lâu (năm 1993) và ít có sự cải tiến nên hiện tại cũng bộc lộ một số hạn chế như:

  • Không hỗ trợ font chữ Unicode.
  • Chỉ sử dụng ngôn ngữ Visual Basic (VB).
  • Môi trường lập trình (IDE) và các Controls đi kèm lạc hậu so với các công cụ mới như Visual Studio (VS) 2008.
  • Bảo vệ mã chương trình không triệt để.
  • Chưa bắt kịp sự phát triển các tính năng của các phiên bản Office mới như Office 2007.

Vì lý do trên, Microsoft đã phát triển công cụ lập trình VSTO (môi trường .NET, là một phần trong bộ Visual Studio 2008) nhằm hỗ trợ tốt hơn việc lập trình trên Office (như Word, Excel, Outlook, PowerPoint...).

Về bản chất VSTO là một Add-in của Visual Studio (VS). VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay thế VBA trong Excel, Word. Nhưng phải đến phiên bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007.

Giống VBA, VSTO cũng tác động trực tiếp với các ứng dụng nền, như vậy sẽ khá thuận lợi khi người dùng chuyển từ VBA sang VSTO.

Những đặc điểm nổi bật của VSTO 3.0 (hay còn gọi là VSTO 2008):

  • Hỗ trợ các ngôn ngữ mà VS hỗ trợ: VB .NET, C++, C#...
  • Tận dụng giao diện đồ họa Windows Form của VS.
  • Cải thiện khả năng truy cập cơ sở dữ liệu với server (SQL và ADO)
  • Bảo vệ mã chương trình bằng cách che dấu và ngăn cản sự thay đổi từ bên ngoài.
  • VSTO 3.0 cho phép tạo ứng dụng ở dạng nhúng hoặc độc lập.

Dạng nhúng: các ứng dụng được lưu theo các file dữ liệu của office như docx, xlsx... và chỉ sử dụng được cho file đó.

Dạng độc lập: mã chương trình được xuất thành dạng file *.dll, từ đó tham chiếu vào các ứng dụng tương ứng. Việc cài đặt các ứng dụng VSTO 3.0 rất đơn giản nhờ công nghệ ClickOnce.

Một số ứng dụng của VSTO:

  • Tùy biến giao diện Ribbon
  • Thay thế VBA dạng add-ins
  • Tạo TaskPane cho ứng dụng Office
  • Cá nhân hóa Outlook.

Về cơ bản, giống như VBA, VSTO được xây dựng dựa trên kiến trúc COM, cho nên người dùng có thể sử dụng các thành phần sẵn có của ứng dụng nền trong việc xây dựng chương trình của mình, giúp thời gian phát triển được rút ngắn.

Một dự án được xây dựng bằng VSTO dựa trên ứng dụng nền nào thì nó phụ thuộc chặt chẽ vào ứng dụng nền đó, bởi theo mặc định, dự án VSTO sẽ hoạt động và sử dụng các thành phần trong chính ứng dụng nền đó.

Sự khác biệt cơ bản nhất của VSTO trong các ứng dụng nền (ví dụ giữa Word và Excel) là cách thức sử dụng các thành phần (đối tượng) của ứng dụng nền. Cho nên khi xây dựng ứng dụng bằng VSTO, cũng như VBA, thì việc hiểu rõ mô hình đối tượng của ứng dụng nền là yêu cầu bắt buộc.

Nói tóm lại, để lập trình với VSTO, cách tốt nhất là làm chủ từng phần. Đầu tiên cần nắm vững một ngôn ngữ lập trình mà Visual Studio hỗ trợ (VB, C# hoặc C++) và cách sử dụng VSIDE để viết mã lệnh cũng như thiết kế giao diện. Sau đó nghiên cứu mô hình đối tượng của các ứng dụng nền (là những thành phần của ứng dụng mà người dùng có thể sử dụng) cũng như cách sử dụng chúng.

Công cụ cần có:

  • Visual Studio 2008 với VSTO 3.0
  • Microsoft Office 2007 hoặc 2003
Hệ thống các đối tượng cơ bản trong MS Word và Excel

Tiếp cận VSTO

Để người dùng bước đầu làm quen với VSTO, bài viết sẽ trình bày các bước tạo các ứng dụng trên MS Excel, Word ở 2 dạng độc lập và nhúng qua 2 ví dụ:

Thêm tính năng xử lý tiếng Việt cho MS Word sử dụng Ribbon (dạng độc lập).

Tạo file Excel có chức năng nhập thông tin cá nhân (dạng nhúng).

Công cụ sử dụng: Visual Studio 2008; Microsoft Office 2007.

Ngôn ngữ lập trình: Visual Basic, nền tảng .NET Framework 3.5

Ví dụ 1: Thêm tính năng xử lý tiếng Việt cho MS Word sử dụng Ribbon.

Tạo mới dự án: Chọn File > New Project, trong Project types chọn Visual Basic > Office > 2007 > Word 2007 Add-in.

Thêm điều khiển Ribbon vào dự án: Project > Add New Item.

Sử dụng Toolbox thêm các điều khiển cần thiết vào Ribbon.

Ribbon này sẽ được thêm vào trong ứng dụng Word khi bạn Debug (Tab Add-ins).

Sau khi thiết kế xong phần giao diện Ribbon, tiến hành viết mã lệnh cho các chức năng. Để điều khiển ứng dụng Word ta truy cập đến đối tượng Application theo cách sau:

Globals.ThisAddIn.Application

Ví dụ đoạn mã sau đây giúp chuyển tất cả nội dung văn bản được đánh dấu thành chữ in hoa.>

Dim strSelect As String =
Globals.ThisAddIn.Application.Selection.Text
Globals.ThisAddIn.Application.Selection.Text = strSelect.ToUpper

Trong quá trình viết mã, tiến hành Debug bình thường, VSTO sẽ tự động khởi động MS Word để người lập trình kiểm thử ứng dụng.

Ví dụ 2: Tạo file Excel có chức năng nhập thông tin cá nhân

Tạo mới dự án: Trong Project types chọn Visual Basic > Office > 2007 > Excel 2007 Workbook.

Sử dụng Toolbox thêm các điều khiển dạng nhúng vào bảng tính (worksheet) để tạo form nhập thông tin cá nhân.

Viết mã lệnh cho điều khiển Button. Khi bấm Thêm vào danh sách, các thông tin do người dùng sẽ được nhập vào trong danh sách bên dưới.

Ví dụ đoạn mã chương trình khi sự kiện bấm nút "Thêm vào danh sách" xảy ra.

If txtHoTen.Text = "Nhập họ và tên" Then
MsgBox("Chưa nhập Họ và tên!")
ElseIf cbxQueQuan.Text = "Chọn địa danh" Then
MsgBox("Chưa nhập quê quán!")
ElseIf dtNgaySinh.Value.Year = Now.Year Then
MsgBox("Chưa nhập ngày tháng năm sinh!")
ElseIf rdbNam.Checked Or rdbNu.Checked Then
Me.Range("A" & i).Value2 =
Application.WorksheetFunction.Max(Range("A:A")) + 1
Me.Range("B" & i).Value2 = txtHoTen.Text
Me.Range("C" & i).Value2 = cbxQueQuan.Text
Me.Range("D" & i).Value2 = dtNgaySinh.Value
Me.Range("E" & i).Value2 = strGioiTinh
i = i + 1
Else
MsgBox("Chưa nhập giới tính!")
End If

Thiết kế Publish

Khi Debug, VSIDE sẽ tự động mở chương trình Excel để người lập trình kiểm thử ứng dụng của mình.

Phân phối cài đặt ứng dụng VSTO

Sau khi hoàn thiện ứng dụng, vấn đề phân phối cài đặt sang máy tính khác thường gặp khó khăn. Nhưng với VSTO 3.0 thì khác. Có 2 cách để thực hiện việc này.

Cách 1: Sử dụng công nghệ ClickOnce của Microsoft.

Chọn Project > Project Properties > Publish

Thiết lập các thông số tạo bộ cài đặt trên giao diện.

Publish Location: Vị trí tạo bộ cài đặt.

Prerequisites: Xác định các gói phần mềm cần cài đặt trước khi tiến hành cài đặt chương trình. Có 3 lựa chọn chính:

  1. Tải từ website của nhà cung cấp.
  2. Nhúng các gói phần mềm vào cùng thư mục cài đặt chương trình.
  3. Cài đặt từ một thư mục xác định trước.

Nếu các gói phần mềm cần thiết chưa được cài đặt, chương trình sẽ tự động cài đặt theo một trong 3 cách trên.

Chọn Publish Now để phát sinh bộ cài. Khi hoàn thành thư mục Publish xuất hiện các file:

Do lựa chọn Prerequisites theo cách 2, ngoài thư mục chứa chương trình, bộ cài còn nhúng sẵn các bộ cài cần thiết cho việc chạy chương trình như DotNetFX35, VSTOR30, WidnowsInstaller3_1.

Để cài đặt trên máy tính khác, chỉ cần thực thi Setup.exe và làm theo hướng dẫn. Sau khi cài đặt, các tính năng của add-in được thêm vào MS Word hoặc Excel.

Cách 2: Cài đặt trực tiếp qua file *.vsto

Sau khi Build, trong thư mục Project\bin\Release có các file:

Để cài đặt add-in này sang máy tính khác, copy toàn bộ thư mục trên, thực thi file *.vsto để cài đặt.

Để thực thi được các file dạng *.vsto, máy tính cần cài đặt Visual Studio Tools for the Office system 3.0 Runtime (Office 2007), cài đặt bằng file vstor30.exe, tải từ trang web chính thức của Microsoft.

Các bạn có thể tải các ứng dụng trên theo địa chỉ:

Lê Đắc Hiền
(theo PC World VN)


 
 

 
     
 
Công nghệ khác:


Nên chọn Netbook hay laptop siêu di động cho công việc?Cư dân mạng bị Google nắm những thông tin gì? - Phần IV
Cư dân mạng bị Google nắm những thông tin gì? - Phần IIICư dân mạng bị Google nắm những thông tin gì? - Phần II
Cư dân mạng bị Google nắm những thông tin gì? - Phần IVB6: Lập trình tiện ích như "Task Manager"
  Xem tiếp    
 
Lịch khai giảng của hệ thống
 
Ngày
Giờ
T.Tâm
TP Hồ Chí Minh
Hà Nội
 
   
New ADSE - Nhấn vào để xem chi tiết
Mừng Sinh Nhật Lần Thứ 20 FPT-APTECH
Nhấn vào để xem chi tiết
Bảng Vàng Thành Tích Sinh Viên FPT APTECH - Nhấn vào để xem chi tiết
Cập nhật công nghệ miễn phí cho tất cả cựu sinh viên APTECH toàn quốc
Tiết Thực Vì Cộng Đồng
Hội Thảo CNTT
Những khoảnh khắc không phai của Thầy Trò FPT-APTECH Ngày 20-11