Sử dụng vba để giải quyết vấn đề trong Word. Tạo ứng dụng VBA trong Word, những tình huống điển hình

Cuốn sách này sẽ giúp bạn nắm vững môi trường phát triển tích hợp VBA và tìm hiểu cách lập trình trong VBA bằng cách sử dụng các đối tượng, thuộc tính, phương thức và sự kiện của chúng. Các kỹ thuật lập trình được thảo luận được minh họa bằng các ví dụ mà bạn có thể thử ngay trong thực tế. Bạn sẽ có thể sử dụng kiến ​​thức thu được để cấu hình và cải thiện các ứng dụng văn phòng phổ biến, bao gồm các ứng dụng Office XP và tạo các ứng dụng của riêng bạn.

Cuốn sách dành cho những ai muốn học lập trình Windows bằng VBA một cách nhanh chóng và dễ dàng.

Sách:

Làm việc với văn bản trong Word VBA

Làm việc với văn bản trong Word VBA

Các đối tượng Phạm vi và Lựa chọn là điểm bắt đầu cho hầu hết mọi thao tác bạn có thể thực hiện với văn bản bằng Word VBA. Một số hành động này có thể được áp dụng cho toàn bộ tài liệu, nhưng nói chung, bạn cần có một phạm vi hoặc vùng chọn trước khi thực hiện thay đổi.

Các đối tượng Phạm vi và Lựa chọn có nhiều điểm chung nhưng có một số điểm khác biệt chính. Cả hai đối tượng đều biểu thị các chuỗi ký tự liền kề mà bạn có thể thực hiện các thao tác khác nhau trên đó. Cả hai đối tượng đều có nhiều thuộc tính và phương thức chung. Tuy nhiên, một số thuộc tính và phương thức là duy nhất cho các lựa chọn và một số khác là duy nhất cho các phạm vi. Một điểm khác biệt đáng kể nữa là đối tượng Selection tương ứng với một vùng chọn trong vùng cửa sổ: văn bản, đồ họa hoặc bất kỳ đối tượng nào khác, trong khi các đối tượng Range tồn tại độc lập với vùng chọn và luôn chứa văn bản.

Sử dụng đối tượng Lựa chọn nếu thủ tục của bạn phụ thuộc vào người dùng, ví dụ: người dùng phải chỉ định văn bản mà một số hành động nhất định sẽ được thực hiện hoặc nếu bạn cần hiển thị cho người dùng chính xác văn bản nào sẽ được thay đổi. Trong các tình huống khác, các đối tượng Range phù hợp hơn nhiều. Chúng giúp thực thi chương trình nhanh hơn và ít gây lo ngại cho người dùng hơn: Word cập nhật nội dung màn hình mỗi khi nội dung của vùng đã chọn thay đổi, nhưng nội dung màn hình không được cập nhật khi phạm vi thay đổi. Ngoài ra, những thay đổi trong phạm vi không được phản ánh trong các lựa chọn do người dùng tạo.

Bất chấp sự khác biệt của chúng, các đối tượng Lựa chọn và Phạm vi có thể được tạo ra lẫn nhau. Tính năng này cực kỳ quan trọng vì nhiều chức năng chỉnh sửa chỉ hoạt động với phạm vi. Ngược lại, cách duy nhất để hiển thị nội dung của một phạm vi cho người dùng là làm nổi bật nó. Hãy sử dụng những kỹ thuật đơn giản sau đây.

* Để chọn một phạm vi, hãy sử dụng phương pháp Chọn của nó. Ví dụ: đối với đối tượng RangeR, lệnh là RangeR. Lựa chọn.

* Để truy cập một phạm vi đại diện cho cùng nội dung với khu vực đã chọn, hãy sử dụng thuộc tính Phạm vi.

Hãy nhớ: nếu một phương thức liên quan đến dữ liệu văn bản được gọi trên một phạm vi và bạn muốn áp dụng nó cho vùng chọn, chỉ cần đưa câu lệnh Lựa chọn vào mã của bạn. Phạm vi. Tên phương thức.

Word VBA cung cấp nhiều phương pháp khác nhau để di chuyển và thay đổi kích thước phạm vi và vùng chọn. Trong phần này tôi chỉ xem xét những điều quan trọng nhất trong số đó; Bạn sẽ phải tham khảo hệ thống trợ giúp để biết các phương pháp khác.

Phương thức Mở rộng mở rộng phạm vi hoặc vùng chọn hiện có bằng cách thêm một khối văn bản vào cuối. Một khối có thể là một ký tự, một từ, một đoạn văn hoặc bất cứ thứ gì khác. Bạn chỉ có thể thêm một khối được xác định trước; Ngoài ra, không được phép thêm các khối như vậy vào đầu phạm vi hoặc vùng chọn.

Để thêm một từ vào vùng được đánh dấu sẽ ngay sau từ đó, hãy sử dụng hướng dẫn sau:

Lựa chọn.Mở rộng (wdWord)

Bạn có thể sử dụng bất kỳ hằng số nào sau đây để mở rộng một đối tượng; wdCharct er, wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow, wdTable, và (chỉ dành cho đối tượng Selection) wdLine. Giá trị mặc định là hằng số wdWord.

Bây giờ có một điểm cần lưu ý mà chúng ta nên giải quyết: Các đối tượng lựa chọn (nhưng không phải phạm vi) cũng chứa phương thức Mở rộng. Phương pháp này bao gồm một công cụ Word cho phép bạn mở rộng vùng chọn khi bạn di chuyển con trỏ chuột. Mỗi lần chương trình gọi phương thức Mở rộng, vùng chọn sẽ được mở rộng theo khối văn bản ngay sau điểm chèn: từ, câu, đoạn văn, vùng chọn hoặc toàn bộ tài liệu hiện tại. Nếu bạn đã chỉ định đối số dưới dạng một ký tự đơn, chẳng hạn như Selection.Expand("C"). vùng đã chọn sẽ được mở rộng đến ký tự được chỉ định đầu tiên gặp phải.

Word VBA cho phép bạn xác định lại điểm bắt đầu và kết thúc của một phạm vi hoặc vùng chọn. Chỉ cần lưu ý rằng các phương thức có từ Move trong tên của chúng sẽ thay đổi vị trí của phạm vi hoặc vùng chọn: chúng không di chuyển văn bản có trong đối tượng đã chỉ định.

Phương thức Move thay đổi phạm vi hoặc vùng chọn bằng cách bắt đầu thu nhỏ nó, đánh dấu vị trí của nó và không còn bất kỳ văn bản nào trong đó nữa. Vị trí trùng với điểm bắt đầu của đối tượng ban đầu. Sau đó, phương thức Move di chuyển đối tượng "đã nén" theo hướng dẫn của bạn. Sau khi di chuyển hoàn tất, bạn có thể sử dụng các phương thức Mở rộng và Mover,nd để điền văn bản vào đối tượng.

Ví dụ sau đây di chuyển một dải ô được đặt tên trở lại hai đoạn văn trong tài liệu. Lưu ý rằng bạn đang sử dụng một hằng số được đặt tên làm giá trị của đối số Unit t (để biết danh sách tất cả các hằng số được đặt tên hợp lệ, hãy xem

"Mở rộng phạm vi và lựa chọn" trước đó trong chương này). Đối số Count là số nguyên dương nếu bạn muốn di chuyển đối tượng tiến qua tài liệu (nghĩa là về cuối) hoặc số nguyên âm nếu bạn muốn di chuyển đối tượng lùi qua tài liệu. Trong ví dụ bên dưới, các đối số không được đặt trong dấu ngoặc đơn vì giá trị trả về của phương thức (số phần tử được di chuyển) không được sử dụng:

oTheRange .Move Unit: = waParagraph, Count, : = -2

Phương pháp MoveStart. và MoveEnd hoạt động gần giống như phương thức Move, chỉ khác là chúng thay đổi điểm bắt đầu hoặc điểm kết thúc của một phạm vi hoặc vùng chọn tương ứng. Hướng dẫn sau đây sẽ di chuyển phần đầu của vùng chọn ba từ đến gần phần cuối của tài liệu:

Select-on.KoveStart Unit:= wdWord, Count:= 3

Lưu ý rằng nếu bạn di chuyển điểm bắt đầu của một đối tượng đến điểm cuối, Word sẽ thu hẹp phạm vi hoặc vùng chọn và di chuyển nó theo hướng dẫn được cung cấp.

Một cặp phương thức khác, Start Of hoặc EndOf, sẽ xáo trộn hoặc mở rộng phần bắt đầu hoặc kết thúc của một phạm vi hoặc vùng chọn. Phương thức Start Of di chuyển phần đầu của đối tượng trở lại phần đầu của khối hiện tại, trong khi phương thức EndOt di chuyển phần cuối của đối tượng về phía cuối khối hiện tại.

Bạn có thể sử dụng đối số Mở rộng với bất kỳ phương thức nào để kiểm soát những gì Word thực hiện. Nếu mặt bị xáo trộn của đối tượng đã ở trên cạnh mà bạn đang cố di chuyển nó tới thì sẽ không có gì xảy ra. Sử dụng hằng số wdMove để thu nhỏ một đối tượng hoặc hằng số wdExtend để chỉ di chuyển phía được chỉ định. Dưới đây là một ví dụ có liên quan:

Lựa chọn. Bắt đầu bài học:= wdSentence, Extend:= wdMove

Rất thường xuyên, bạn cần nén một phạm vi hoặc vùng chọn đến một điểm không chứa bất kỳ văn bản nào. Về mặt kỹ thuật, phạm vi hoặc lựa chọn thu gọn là phạm vi có điểm bắt đầu và điểm kết thúc giống nhau. Việc nén các đối tượng như vậy rất quan trọng trong trường hợp bạn cần chèn trường, bảng hoặc thành phần khác trước hoặc sau vùng hoặc phạm vi đã chọn mà không thay thế văn bản. (Bạn có thể chèn văn bản thuần túy, đoạn văn mới và một số mục khác vào phạm vi hoặc vùng chọn "không nén".)

Sử dụng phương pháp Thu gọn để thu nhỏ phạm vi hoặc vùng chọn. Bạn có thể thu nhỏ một đối tượng về điểm bắt đầu hoặc điểm kết thúc bằng cách sử dụng đối số Direction tùy chọn. Câu lệnh sau đây thu nhỏ vùng chọn về điểm bắt đầu của nó:

Lựa chọn.Thu gọn

Và ví dụ này thu nhỏ vùng chọn về điểm cuối của nó:

Selection.Collapse(Direction:=wdCollapseEnd)

Nếu bạn thu gọn một phạm vi kết thúc bằng dấu đoạn văn về điểm cuối của nó (sử dụng hằng số wdCollapseEnd), Word sẽ đặt phạm vi được thu gọn sau dấu đoạn văn (có nghĩa là phạm vi được thu gọn sẽ nằm trong đoạn tiếp theo). Nếu bạn muốn đặt thứ gì đó trước dấu đoạn văn của phạm vi ban đầu, trước tiên bạn phải di chuyển phạm vi trở lại bằng phương pháp MoveEnd, sử dụng câu lệnh như sau:

Đơn vị Range.MoveEnd:= wdCharacter, Count:= -1

Việc xóa tất cả văn bản trong một phạm vi hoặc vùng chọn thật dễ dàng: chỉ cần sử dụng phương thức Xóa của đối tượng tương ứng. Bạn cũng có thể sử dụng phương pháp Cắt nếu muốn xóa văn bản và đặt nó vào khay nhớ tạm. Tất nhiên, phương pháp của Soru sao chép văn bản vào bảng tạm mà không ảnh hưởng đến văn bản trong phạm vi hoặc vùng chọn.

Bạn có thể dán văn bản đã đặt trước đó vào bảng tạm vào bất kỳ phạm vi hoặc vùng chọn nào bằng cách sử dụng phương pháp Dán của đối tượng. Nếu đối tượng đích chưa được nén, văn bản được dán sẽ chỉ thay thế văn bản gốc trong đối tượng, giống như khi bạn chạy lệnh Dán trong Word.

Mặc dù việc sử dụng clipboard để chuyển văn bản từ nơi này sang nơi khác có vẻ khá phổ biến nhưng phương pháp này không phải lúc nào cũng hiệu quả nhất. Sẽ thuận tiện hơn nhiều khi sử dụng thuộc tính Văn bản hoặc Văn bản được định dạng của một phạm vi hoặc vùng chọn. Đặt các thuộc tính này thành phạm vi hoặc vùng chọn chứa văn bản bạn muốn truyền tải, thế là xong. Đối tượng đích phải được nén cho đến khi văn bản được truyền phải thay thế văn bản hiện có trong đối tượng.

Đoạn mã sau chuyển văn bản từ vùng chọn sang phạm vi nén được liên kết với dấu trang (dòng mã thứ tư thực hiện thao tác chuyển). Chỉ có văn bản mới đi vào vị trí mới; mọi định dạng đều bị mất:

Với ActiveDocument.Bookmarks("TheBookmark")

ActiveDocument.Range(Bắt đầu:=.Bắt đầu, Kết thúc=.Bắt đầu)

RangeY.Text = Lựa chọn.Text

Để chuyển văn bản và định dạng nó, chỉ cần thay thế thuộc tính Text bằng thuộc tính FormattedText.

Kỹ thuật dễ nhớ nhất để thêm văn bản là đặt thuộc tính Văn bản của dải ô hoặc vùng chọn thành văn bản bạn chọn để chèn. Điều này được minh họa bằng ví dụ dưới đây:

Range2.Text = "Này này! Nhưng không có ai ở nhà cả!"

Chỉ cần nhớ rằng việc sử dụng thuộc tính Text sẽ thay thế mọi thứ hiện có trên đối tượng. Để tránh điều này (trừ khi bạn thực sự muốn thay thế văn bản hiện có), trước tiên hãy thu nhỏ đối tượng.

Sử dụng các phương thức Insert Before hoặc Insert After của đối tượng Range hoặc Selection để chèn văn bản vào một vị trí cụ thể trong tài liệu mà không ảnh hưởng đến văn bản hiện có. Các phương thức này cho phép bạn chèn văn bản mới ngay trước hoặc sau đối tượng được chỉ định tương ứng. Word bao gồm văn bản được dán trong một vùng hoặc phạm vi đã chọn.

Khi sử dụng một trong hai phương pháp, đối số duy nhất là văn bản bạn muốn chèn. Đoạn mã sau đây chèn một đoạn văn mới chứa từ Dairy Entry vào đầu vùng chọn (lưu ý sử dụng hằng số VBA vbCr để thêm dấu đoạn văn). Sau đó, một đoạn mới được thêm vào cuối, bắt đầu bằng ngày hiện tại. Nếu bạn đã chọn toàn bộ đoạn văn trước khi chạy mã này, đoạn văn chứa ngày hiện tại sẽ xuất hiện sau dấu đoạn văn trong vùng chọn.

Định nghĩa 1

Microsoft Office là một trong những hệ thống phần mềm phổ biến nhất được sử dụng trên toàn thế giới.

Thật khó để tìm thấy một máy tính không cài đặt trình soạn thảo văn bản Word. Đại diện cho một hệ thống các ứng dụng có liên quan chặt chẽ với nhau, MS Office mở ra cho người dùng nhiều khả năng nhất.

Visual Basic for Application (VBA) đã trở thành công cụ mạnh mẽ nhất để tạo ứng dụng trong MS Office. Nó thay thế các ngôn ngữ lập trình macro thường có trong các ứng dụng.

Định nghĩa 2

VBA là một công cụ phát triển ứng dụng hiệu quả cao vì nó thuộc ngôn ngữ lập trình hướng đối tượng và có tính đơn giản của ngôn ngữ macro. Người dùng mới làm quen với lập trình trong bộ ứng dụng văn phòng có thể ghi lại hành động của mình bằng trình ghi macro và tạo macro mà không cần học các tính năng ngôn ngữ. Ghi lại hành động của bạn và sau đó xem lại mã đã ghi là cách dễ nhất để tự học VBA.

Lưu ý 1

Giờ đây, bằng cách sử dụng VBA, bạn có thể dễ dàng và nhanh chóng tạo nhiều ứng dụng khác nhau bằng một môi trường và ngôn ngữ duy nhất cho tất cả các chương trình văn phòng. Các nhà phát triển ứng dụng sẽ được hưởng lợi rất nhiều từ các tính năng và công cụ bổ sung của VBA để quản lý giao diện người dùng, thao tác sự kiện, xử lý lỗi và các công cụ khác cho phép họ tạo các ứng dụng hiệu quả với giao diện thân thiện với người dùng.

Hãy tập trung vào các vấn đề phát triển ứng dụng VBA cho MS Word. Với VBA, bạn có thể tự động hóa mọi thao tác bạn thực hiện một cách tương tác (nghĩa là thủ công) trong Word: tạo tài liệu, thêm văn bản hoặc các thành phần đồ họa khác vào chúng, định dạng, chỉnh sửa, lưu, v.v. VBA sẽ thực hiện tất cả các thao tác này nhanh hơn, chính xác hơn và với chi phí thấp hơn con người.

Nhiều tài liệu như chứng chỉ, biên lai, bản ghi nhớ, v.v. được tạo trong MS Word. Các tài liệu này có phần cố định và phần thay đổi. Việc tạo các tài liệu như vậy có thể được đơn giản hóa bằng ngôn ngữ lập trình VBA.

Tạo một tài liệu văn bản

Hãy xem một ví dụ về tạo trợ giúp trong MS Word 2007.

Hãy tạo một tài liệu Word và lưu nó với tên spravka.docx.

Lưu ý 2

Nếu không có tab Nhà phát triển trên dải băng, hãy tạo nó bằng lệnh - Tùy chọn Word - Cài đặt cá nhân. Trong nhóm Tùy chọn Word chung, chọn hộp kiểm Hiển thị tab nhà phát triển trên dải băng.

Tạo macro1 bằng trình ghi macro. Macro1 tạo văn bản tài liệu “HELP”:

  • thực hiện lệnh Phát triển, Macro, Ghi macro;
  • Trong trường Tên Macro, để nguyên Macro1. Trong trường Macro có sẵn cho:, chọn tên của tài liệu này spravka.docx. Bấm OK;
  • nhập văn bản của tài liệu “HELP” với các tham số phông chữ và đoạn văn được yêu cầu;
  • dừng ghi macro bằng nút Dừng trong tab Nhà phát triển mã.

Kiểm tra hoạt động của macro bằng cách chạy nó bằng lệnh: Developer, Macros, Macro1, Run.

Văn bản tài liệu:

Hãy tạo Macro2 bằng trình ghi macro. Macro2 xóa nội dung của tài liệu (Chọn tất cả $(Ctrl+A)$, phím Xóa).

Hãy tạo bảng truy cập nhanh cho spravka.docx với các nút để chạy macro.

Để làm điều này bạn cần:

  • chọn mục menu Tùy chọn Word-Cài đặt;
  • trong cửa sổ Định cấu hình Thanh công cụ truy cập nhanh và Phím tắt, trên tab Chọn lệnh từ, chọn Macro và trên tab Định cấu hình Thanh công cụ truy cập nhanh, chọn Cho Spravka;
  • Trong cùng hộp thoại lệnh Macros, chọn lệnh Macro1 và thêm nó vào bảng truy cập nhanh cho tài liệu Spravka. Thêm lệnh Macro2 theo cách tương tự;
  • thay đổi nhãn hoặc biểu tượng trên nút được gán cho macro Chỉnh sửa..., thay đổi nút và tên hiển thị (ví dụ: Trợ giúp), chọn biểu tượng mới cho nút, thay đổi một chút và gán macro (Macro1) cho nút này cái nút;
  • Tương tự, thay đổi nhãn và nút để gọi một macro khác (Macro2), ví dụ: Dọn dẹp tài liệu.

Chạy macro bằng các nút trên thanh công cụ truy cập nhanh Spravka.

Để thoát Word, chọn Thoát Word từ menu.

Sử dụng VBA để giải quyết vấn đề trong Word

VBA duy trì một tập hợp các đối tượng tương ứng với các phần tử Word. Sử dụng các thuộc tính và phương thức của các đối tượng này, bạn có thể tự động hóa mọi thao tác trong Word. Tuy nhiên, nên tự động hóa việc thực hiện các thao tác không có công cụ tiêu chuẩn trong Word hoặc việc triển khai chúng bằng các công cụ tiêu chuẩn là công việc thường xuyên hoặc tốn nhiều công sức. Hãy nhìn vào các đối tượng quan trọng nhất.

Đối tượng Document đại diện cho một tài liệu mới hoặc đã mở trước đó.

Các thuộc tính chính của đối tượng Document là:

  • Đếm - số lượng tài liệu hiện đang mở;
  • ActiveDocument - tài liệu hoạt động.

Một số phương thức của đối tượng Document và tập hợp Documents:

  • Mở - mở một tệp chứa tài liệu hiện có và tự động thêm nó vào bộ sưu tập;
  • Thêm - thêm một tài liệu trống mới;
  • Lưu - lưu các thay đổi đối với tài liệu hiện có mà không cần đóng;
  • Save As (chỉ đối tượng) - lưu tài liệu đang hoạt động, mới được tạo trong thư mục hiện tại;
  • Mục - cho phép bạn truy cập phần tử bộ sưu tập;
  • Kích hoạt (chỉ đối tượng) - kích hoạt tài liệu đang mở;
  • PrintOut (chỉ dành cho đối tượng) - in tài liệu;
  • Đóng - đóng tài liệu.

Các đối tượng Ký tự (ký hiệu), Word (từ), Sentence (câu), Đoạn văn (đoạn văn), Mục (phần tài liệu) xác định cấu trúc của văn bản tài liệu.

Tất cả các đối tượng này có các thuộc tính sau:

  • Đếm - thuộc tính trả về số phần tử trong bộ sưu tập;
  • Đầu tiên - thuộc tính trả về một đối tượng là phần tử đầu tiên của bộ sưu tập;
  • Cuối cùng - thuộc tính trả về đối tượng là phần tử cuối cùng.

Các bộ sưu tập Ký tự, Từ, Câu có một phương thức Item(Index) duy nhất.

Bộ sưu tập Đoạn văn có tất cả các thuộc tính được liệt kê ở trên cho nhóm bộ sưu tập này và nhiều thuộc tính có giá trị xác định định dạng của đoạn văn.

Định dạng đoạn văn cũng có thể được xác định bằng các phương pháp. Dưới đây là một số phương pháp của bộ sưu tập Đoạn văn:

  • Mục - xác định phần tử bộ sưu tập;
  • Thêm - thêm một đoạn trống mới (tham số phương thức chỉ định điểm chèn, được chỉ định bởi đối tượng Phạm vi);
  • InsertParagraph, InsertParagraphAfter, InsertParagraphBefore - chèn một đoạn trống thay vì văn bản vào sau hoặc trước văn bản được chỉ định bởi đối tượng Lựa chọn hoặc Phạm vi;
  • Đặt lại - xóa định dạng thủ công, áp dụng định dạng được chỉ định bởi kiểu đoạn văn cho đoạn văn;
  • Thụt lề, nhô lề - tăng hoặc giảm mức thụt lề đoạn văn tính từ mép trang tính;
  • TabHangingIndent(Count), TabIndent(Count) - tăng (Count>0), giảm (Count)
  • Space1, Space2, Space15 - đặt khoảng cách dòng (đơn, đôi, một rưỡi).

Các đối tượng Phạm vi và Lựa chọn đại diện cho các phần của tài liệu.

Định nghĩa 3

Đối tượng Range cho phép bạn chỉ định một phạm vi tùy ý, là một chuỗi các phần tử được lập chỉ mục và có thể thu được thông qua phương thức Range hoặc thuộc tính Range của các đối tượng khác.

Các thuộc tính của đối tượng Range là:

  • Bắt đầu - vị trí ký tự bắt đầu của phạm vi;
  • Kết thúc - vị trí ký tự cuối cùng của phạm vi;
  • Văn bản - cho phép bạn lấy hoặc thay đổi nội dung của một đối tượng.

Định nghĩa 4

Đối tượng Selection chỉ định vùng (đoạn) đã chọn trong tài liệu. Một lựa chọn trong tài liệu xác định một vùng tiếp giáp của các phần tử, nhưng không phải là một phạm vi được xác định bởi phần đầu và phần cuối của nó. Chỉ có thể chọn một lựa chọn, do đó, một đối tượng Lựa chọn có thể hoạt động tại một thời điểm, nó có thể được lấy bằng thuộc tính Lựa chọn hoặc phương thức Chọn của các đối tượng khác.

Dưới đây là một số phương thức vốn có của các đối tượng Selection và Range:

  • Di chuyển - phương pháp di chuyển điểm chèn;
  • MoveStart, MoveEND - phương pháp thay đổi giá trị của thuộc tính Bắt đầu và Kết thúc;
  • Thu gọn - thu gọn phạm vi về đầu hoặc cuối của nó;
  • Tiếp theo - phương pháp lấy liên kết đến phần tử tiếp theo của tập hợp các đối tượng trong một phạm vi hoặc đoạn đã chọn;
  • Xóa - xóa văn bản có trong phạm vi;
  • InsertAfter , InsertBefore chèn văn bản vào trước hoặc sau văn bản có trong phạm vi.
  • Sao chép - sao chép một đối tượng vào bảng nhớ tạm;
  • Cắt - di chuyển đối tượng vào khay nhớ tạm;
  • Dán - cho phép bạn đặt nội dung của bộ đệm vào khu vực được chỉ định bởi đối tượng Phạm vi hoặc Lựa chọn.

10. Lập trình trong Word

10.1 Tại sao phải lập trình trong Word

Tạo ứng dụng VBA trong Word, những tình huống điển hình

Word là ứng dụng lâu đời nhất và phổ biến nhất có trong Microsoft Office. Ở hầu hết các tổ chức, người dùng chuẩn bị tài liệu bằng Word.

Từ quan điểm lập trình, Word chủ yếu là một công cụ để tạo báo cáo về cơ sở dữ liệu. Trong trường hợp này, báo cáo là bất kỳ tài liệu nào được tạo ra trên cơ sở thông tin từ cơ sở dữ liệu, ví dụ: thỏa thuận, giấy chứng nhận nghiệm thu, lệnh nhận tiền mặt, thông báo góp tiền mặt, lệnh gửi bộ phận kế toán, một hóa đơn, v.v. Tất nhiên, các báo cáo có thể được tạo trong Word cũng bao gồm các tài liệu có dữ liệu tóm tắt - báo cáo kỳ, báo cáo, v.v.

Tác giả đã phải tạo ra các ứng dụng với các báo cáo được phát triển trên nhiều sản phẩm phần mềm - Microsoft Access, Crystal Reports, Microsoft Reporting Services, v.v. Nếu ứng dụng của bạn tạo báo cáo cơ sở dữ liệu trong Microsoft Word, thì rất có thể, các báo cáo đó sẽ không phải là báo cáo nhanh nhất về mặt tạo và không đơn giản nhất về mặt lập trình. Nhưng chúng chắc chắn sẽ thân thiện nhất với người dùng cuối. Tại sao?

Rất thường xuyên tại một doanh nghiệp, chỉ cần sửa một vài dòng trong biểu mẫu báo cáo - ví dụ: thay vì “Giám đốc” hãy đặt “Quyền Giám đốc”. Nếu báo cáo được tạo trong Crystal Reports hoặc Microsoft Reporting Services, bạn cần liên hệ với nhà phát triển ngay lập tức. Và sau một thời gian I.O. sẽ được xác nhận là giám đốc và nhà phát triển sẽ phải chỉnh sửa lại báo cáo.

Nếu báo cáo ban đầu được tạo trong tài liệu Word, thì người dùng luôn có thể thực hiện các thay đổi cần thiết đối với tài liệu đã tạo - đại đa số người dùng trong doanh nghiệp đều biết cách làm việc trong Word. Không cần phải gấp rút tìm kiếm nhà phát triển nữa.

Có những lợi ích khác khi tạo báo cáo trong Word. Theo quy định, khi tạo báo cáo trong Word, các giá trị từ cơ sở dữ liệu sẽ được thay thế vào mẫu báo cáo, mẫu này được lưu trữ trong cơ sở dữ liệu hoặc hệ thống tệp (ở dạng tệp *.dot). Nếu định dạng báo cáo phức tạp, có nhiều thiết kế cụ thể (ví dụ: thông báo đóng góp bằng tiền mặt), thì việc chuẩn bị mẫu của nó trong Word sẽ dễ dàng hơn nhiều so với, chẳng hạn như trong Crystal Reports hoặc Dịch vụ báo cáo.

Một ứng dụng phần mềm khác của Word đang làm việc với các định dạng tài liệu khác nhau. Word có thể làm việc với các tài liệu có nhiều định dạng khác nhau. Những khả năng này có thể được sử dụng để xử lý hàng loạt tài liệu.

Một trường hợp thực tế: trong một thư mục trên đĩa, chúng tôi đã thu thập hàng trăm tài liệu “có kích thước khác nhau” từ những người dùng khác nhau. Một số trong số chúng được tạo bằng Word với các phiên bản khác nhau, một số chỉ là tệp văn bản, một số tài liệu ở định dạng HTML, XML hoặc EML (thư email). Doanh nghiệp đã triển khai hệ thống quản lý tài liệu dựa trên SharePoint Portal Server và chúng tôi cần đưa tất cả các tài liệu này về một định dạng duy nhất (Word 2003) và tải chúng lên SharePoint Portal Server. Tất nhiên, nếu không có tự động hóa trong tình huống như vậy, bạn sẽ phải mày mò trong một thời gian rất dài.

Ứng dụng phần mềm thứ ba của Word là định dạng tài liệu, ví dụ như áp dụng kiểu theo chương trình, tìm kiếm và thay thế các phần văn bản trong nhiều tài liệu cùng một lúc, làm việc với cấu trúc tài liệu, v.v. Thông thường, những nhiệm vụ như vậy được đặt ra ở các nhà xuất bản, chẳng hạn như khi chuẩn bị bản thảo.

Trên trang tài liệu Word, bạn có thể sắp xếp công việc bằng một chương trình khá phức tạp mà thậm chí không cần tạo các biểu mẫu Windows riêng cho việc này, chẳng hạn như khi bạn mở tài liệu hoặc khi bạn nhấp vào nút trên trang tài liệu, nhưng chỉ đơn giản bằng cách đặt các trường nhập dữ liệu trên đó và hiển thị theo chương trình trên cùng một trang kết quả sau khi thay đổi dữ liệu.

Tuy nhiên, nhiều phép tính toán học dễ thực hiện hơn trong Excel; khi lưu trữ thông tin trong cơ sở dữ liệu, Access có khả năng xử lý thông tin này rất tuyệt vời. Khi làm việc với cơ sở dữ liệu trong các hệ thống thông tin lớn, có thể tạo báo cáo với kết quả đầu ra là Word hoặc Excel và việc phát triển các chương trình đó chỉ có thể được thực hiện bởi một chuyên gia đã quen thuộc với cả kiến ​​trúc của hệ thống thông tin. cơ sở dữ liệu và ngôn ngữ VBA.

Bạn có thể tìm hiểu một số nguyên tắc làm việc với các đối tượng Word nếu bạn ghi lại một chuỗi hành động nhất định của mình bằng công cụ Word Record Macro, công cụ này hiện có trên tab Nhà phát triển của dải băng. Tab này xuất hiện nếu trong Tùy chọn Word trên trang Chung, hộp kiểm Hiển thị tab Nhà phát triển trên dải băng được chọn.

Hãy làm như sau:

1) nhấp vào nút Ghi macro; cả nút và phím đều không thể được gán cho macro; chúng tôi đặt nơi lưu văn bản của macro: Macro có sẵn cho tài liệu hiện tại;

2) di chuyển đến cuối tài liệu từ vị trí hiện tại (nó không ở cuối) bằng cách nhấn phím Ctrl+End;

3) nhấn phím Enter và viết từ “Xin chào!”;

4) lặp lại thao tác ở bước 3 một lần nữa;

5) chọn từ cuối cùng bằng cách nhấn Shift+Home và nhấn phím Xóa;

6) về đầu dòng đầu tiên “Xin chào!”, nhấn Shift+End rồi nhấn phím Xóa;

7) trên tab Nhà phát triển, trước tiên hãy nhấp vào nút Dừng ghi, sau đó nhấp vào nút Visual Basic;

8) trong cửa sổ soạn thảo Visual Basic mở ra ở bên trái trong bảng Project, nhấp đúp vào phần Progect() - Modules - NewMacros và nhìn thấy bên phải cửa sổ có văn bản của chương trình trong VBA, được hiển thị trong Hình 5.43.

Khi lưu tài liệu chứa các mô-đun chương trình, trong hệ thống Microsoft Office 2007, bạn phải chọn loại tệp Tài liệu Word có hỗ trợ macro, nếu không văn bản của chương trình sẽ không được lưu.

Trong văn bản macro ở Hình 5.43, Selection là một trong những đối tượng chính chứa đối tượng Ứng dụng chính - ứng dụng Word.

Hình 5.43. Văn bản macro trong VBA


Khi viết văn bản chương trình, bạn có thể sử dụng danh sách bật lên gồm các thuộc tính và phương thức xuất hiện cho các đối tượng tiêu chuẩn trong trình soạn thảo Visual Basic sau khi viết tên đối tượng và nhấp vào dấu chấm sau nó (xem Hình 5.44); mô tả đầy đủ về các thuộc tính và phương thức của các đối tượng có sẵn trong hệ thống trợ giúp.

Bạn cũng có thể nhận được danh sách bật lên gồm các thuộc tính và phương thức bằng cách nhấn tổ hợp phím Ctrl+Space.


Ngoài ra, khi viết văn bản chương trình cho các thủ tục và hàm tiêu chuẩn, các chú giải công cụ sẽ xuất hiện trên cú pháp của chúng (xem Hình 5.45).

MsgBoA(Protr [ShsteLz VbMsgBoxStule = vbOKOPlu], )