Tạo ứng dụng bằng VBA cho MS WORD. VBA Word cách thực hiện

Chương 15. Lập trình VBA trên Word.

Trong chương này...

~ Mô hình đối tượng từ

~ Đối tượng từ khóa: Windows, Vùng chọn, Phạm vi và Đối tượng Tìm kiếm

~ Phạm vi hoặc điểm nổi bật: sử dụng gì khi làm việc với văn bản

~ Các phương thức và thuộc tính để thao tác với văn bản

~ Tìm và thay thế văn bản bằng VBA trong Word

Trong toàn bộ bộ ứng dụng Office, Word cung cấp bộ công cụ lập trình phong phú nhất. Làm quen với các đối tượng Word như Range và Find đôi khi có thể gặp rủi ro, nhưng điều đó rất cần thiết nếu bạn thực sự muốn tạo các quy trình VBA để phát huy toàn bộ sức mạnh của Word. Đây chính xác là những gì chúng ta sẽ nói đến trong chương này.

Mô hình đối tượng Word chứa rất nhiều đối tượng và bộ sưu tập chúng đến mức bạn sẽ cần một tờ giấy khổng lồ nếu muốn hiển thị bằng đồ họa hệ thống phân cấp của tất cả các đối tượng này. Rõ ràng, tôi sẽ chỉ có thể xem xét một phần nhỏ trong số lượng lớn các đối tượng, thuộc tính và phương thức mà bạn có thể sử dụng trong các chương trình của mình. Chương này chỉ đề cập đến những kỹ thuật quan trọng nhất để làm việc với Word VBA. Nếu muốn biết thêm thông tin chi tiết, bạn sẽ phải truy cập vào hệ thống trợ giúp nhiều lần.

Giới thiệu đối tượng ứng dụng

Giống như tất cả các ứng dụng VBA, chìa khóa của mô hình đối tượng Word là đối tượng Ứng dụng. Nói cách khác, đối tượng này chứa tất cả các đối tượng Word khác. Vì đối tượng Ứng dụng là trung tâm của lập trình VBA trong Word nên bạn thậm chí không cần phải đặt tên rõ ràng cho nó khi làm việc với nhiều đối tượng quan trọng. Tuy nhiên, bạn không nên quên vai trò của đối tượng này, vì bạn sẽ cần nó khi làm việc với các thuộc tính và phương thức của chính ứng dụng cũng như khi truy cập một số đối tượng khác. Ví dụ: câu lệnh sau sử dụng phương thức List Commands của đối tượng Ứng dụng:

Application.ListCommands(Đúng)

Nhân tiện, phương pháp List Commands sẽ tạo một tài liệu mới và đặt một bảng vào đó chứa các phím tắt và lệnh menu Word. Nếu bạn chuyển phương thức List Commands True, tài liệu mới sẽ chứa các phím tắt và lệnh menu Word. Truyền nó Sai để nó chỉ liệt kê các lệnh.

Từ cuốn sách Lập trình văn phòng tác giả Friesen Irina Grigorievna

Phần II Lập trình VBA trong Word

Từ cuốn sách Công việc văn phòng hiệu quả tác giả Ptashinsky Vladimir Sergeevich

Chương 12 Word: mọi điều bạn muốn nói Word là một trong những chương trình ứng dụng đầu tiên được Microsoft phát triển sau các chương trình hệ thống. Các phiên bản đầu tiên đã xuất hiện cách đây hơn 10 năm và chúng đã được cải tiến suốt thời gian qua. Bản phát hành đầu tiên của chương trình đã được gọi là văn bản

Từ sách Word 2007. Hướng dẫn phổ biến tác giả Krainsky I

Chương 1 Khái niệm cơ bản về Microsoft Word

Từ cuốn sách Nguyên tắc cơ bản của khoa học máy tính: Sách giáo khoa cho các trường đại học tác giả Malinina Larisa Alexandrovna

Chương 5 Soạn thảo văn bản Microsoft Word 5.1. Khởi chạy trình chỉnh sửa, tạo, mở và lưu tài liệu Trình soạn thảo văn bản Microsoft Word được thiết kế để tạo và xử lý bất kỳ tài liệu văn bản nào từ ghi chú đơn giản đến bố cục ban đầu của một ấn phẩm phức tạp. Làm việc với văn bản

Từ cuốn sách Công nghệ lập trình tác giả Kamaev V A

Chương 9 LẬP TRÌNH TRỰC QUAN 9.1. KHÁI NIỆM CHUNG VỀ LẬP TRÌNH TRỰC QUAN Lập trình trực quan là ở thời điểm hiện tại. time là một trong những mô hình lập trình phổ biến nhất. Lập trình trực quan bao gồm phát triển tự động

Từ cuốn sách Lập trình trong Ruby [Hệ tư tưởng ngôn ngữ, lý thuyết và thực hành ứng dụng] của Fulton Hal

Chương 18. Lập trình mạng Nếu một nhân viên bán hàng nói từ “mạng lưới” trong cuộc trò chuyện với bạn, rất có thể anh ta muốn bán danh thiếp của mình. Nhưng trong miệng của một lập trình viên, từ này có nghĩa là sự tương tác điện tử giữa các máy vật lý ở xa - không quan trọng chúng có được định vị hay không.

Từ cuốn sách VBA dành cho người giả của Steve Cummings

Chương 16. Lập trình VBA trong Excel. Trong Chương này...~ Tìm hiểu về Mô hình đối tượng Excel~ Thao tác với các ô bằng cách sử dụng các đối tượng phạm vi~ Tạo các hàm của riêng bạn để sử dụng trong các công thức trên trang tính ~ Sử dụng các hàm có sẵn của Excel trong VBA~ Làm việc với

Từ cuốn sách Lập trình PDA và Điện thoại thông minh trên .NET Compact Framework tác giả Klimov Alexander P.

Chương 17. Lập trình cơ sở dữ liệu. Trong Chương này...~ Tìm hiểu thuật ngữ~ Viết mã cơ sở dữ liệu với các đối tượng dữ liệu ActiveX~ Lập trình với DAO~ Tăng tốc với SQLMặc dù Access là ứng dụng cơ sở dữ liệu chính thức,

Từ cuốn sách Có máy tính bên mình. Yếu tố cần thiết tác giả Egorov A. A.

Chương 9 Lập trình cho điện thoại thông minh Các tính năng của lập trình cho điện thoại thông minh Trong chương này, chúng ta sẽ tìm hiểu cách tạo ứng dụng cho điện thoại thông minh chạy Windows Mobile 5.0. Đã xảy ra trường hợp ban đầu ở Nga không nhận được điện thoại thông minh chạy Điện thoại thông minh 2003

Từ cuốn sách Linux: Hướng dẫn đầy đủ tác giả Kolisnichenko Denis Nikolaevich

Chương 4 Microsoft Word 4.1. Tính năng của Microsoft Word Microsoft Word là một trong những trình soạn thảo văn bản tốt và mạnh mẽ nhất hiện nay. Word, không giống như Notepad và WordPad, không có trong Windows nhưng được phân phối như một phần của gói phần mềm Microsoft Office. Chương trình có dung lượng rất lớn

Từ cuốn sách Máy tính dành cho kế toán tác giả Filatova Violetta

Chương 28 Lập trình hạt nhân Trong Chương 7, bạn đã biết rằng trình điều khiển thiết bị trong Linux được triển khai dưới dạng mô-đun hạt nhân và bạn đã được giới thiệu về gói module-init-tools (còn gọi là modutils cho hạt nhân 2.4), gói này chứa các tiện ích để thực hiện các thao tác cơ bản trên mô-đun hạt nhân. Trong chương này tôi sẽ chỉ ra cách

Từ cuốn sách HƯỚNG DẪN DÀNH CHO NHÀ PHÁT TRIỂN CƠ SỞ DỮ LIỆU Firebird bởi Borri Helen

Chương 6 Làm việc với Word Thông thường làm việc với trình soạn thảo Word không gây khó khăn gì: văn bản được nhập vào đó giống như trong trình soạn thảo Notepad. Khó khăn bắt đầu khi bạn phải sửa chữa và bổ sung tài liệu đã tạo. Trước sự ngạc nhiên của người dùng,

Từ cuốn sách Access 2002: Hướng dẫn tác giả Dubnov Pavel Yuryevich

CHƯƠNG 27. Lập trình với các giao dịch. Giao dịch là điểm khởi đầu cho tất cả các tương tác giữa ứng dụng khách và máy chủ. Trong chương này, chúng ta sẽ xem xét việc bắt đầu, quản lý và hoàn thành các giao dịch từ góc độ các giao diện khách hàng khác nhau. Nhiều ngôn ngữ và

Từ cuốn sách Máy tính văn phòng dành cho phụ nữ tác giả Pasternak Evgenia

Chương 11 Lập trình bằng ngôn ngữ SQL Như đã đề cập trong Chương 9, “chuyên môn” chính của ngôn ngữ SQL là xây dựng các truy vấn của người dùng tới cơ sở dữ liệu. Vì vậy, lập trình bằng ngôn ngữ SQL chủ yếu là hình thành các

Từ cuốn sách Máy tính thật dễ dàng! tác giả Aliev Valery

Chương 1 Trình soạn thảo văn bản Microsoft Word

Từ cuốn sách của tác giả

Chương 3 Microsoft Word hoặc Cách in trên máy tính Tại sao bạn cần một trình xử lý văn bản? Bắt đầu Cài đặt Microsoft Word Thanh công cụ Tạo tài liệu Định dạng tài liệu Đánh dấu chỉnh sửa tài liệu Bảng và đường viền WordArt.

Lập trình VBA trong Word

Xuất văn bản sang tài liệu Word

5.1. Đối tượng từ cơ bản

Đối tượng Word.Application

Ngoài tất cả các khả năng lập trình VBA được thảo luận trong Phần I, bạn có thể thêm khả năng xuất tất cả các kết quả tính toán, các phép biến đổi và thông báo vào tài liệu Word, với khả năng in thêm. Để làm điều này, bạn cần xem xét các đối tượng cơ bản của ứng dụng Word.

Chìa khóa của mô hình đối tượng Word là đối tượng Ứng dụng vì nó chứa tất cả các đối tượng Word khác. Các phần tử của nó ở các cấp độ khác nhau của hệ thống phân cấp có khoảng 180 đối tượng. Bản thân đối tượng Ứng dụng gốc có hơn một trăm thành phần: thuộc tính, phương thức và sự kiện.

Thuộc tính của đối tượng Word.Application

Các thuộc tính của bất kỳ đối tượng nào được chia thành hai nhóm: thuộc tính của người tham gia (đối tượng) và thuộc tính đầu cuối (các biến VBA thông thường).

Một hệ thống thống nhất để tổ chức các thanh menu và nút công cụ được cung cấp bởi đối tượng CommandBars, trợ giúp của Assistant và tìm kiếm bằng FileSearch.

Đối tượng trung tâm của Word là bộ sưu tập Tài liệu và Mẫu, hay đúng hơn là các thành phần cấu thành của chúng, chính tài liệu và các mẫu.

Hãy nhìn vào các đối tượng nền.

Đối tượng Tự động sửa lỗi hỗ trợ tự động sửa văn bản đã gõ. Khả năng của nó tương đương với lệnh Tự động sửa lỗi trong menu Công cụ.

Đối tượng Trình duyệt cho phép bạn di chuyển điểm chèn trỏ đến các đối tượng trong tài liệu.

Bộ sưu tập các đối tượng Dialogs đại diện cho bộ sưu tập các hộp thoại được tích hợp trong Word. Bạn không thể thêm mới hoặc xóa các phần tử khỏi bộ sưu tập này theo chương trình. Nhưng các cửa sổ tương ứng có thể được mở và hiển thị trên màn hình hiển thị, từ đó người dùng tổ chức một cuộc đối thoại về chủ đề do cửa sổ tương ứng chỉ định.

Ba đối tượng liên quan đến kiểm tra ngữ pháp và chính tả: Ngôn ngữ, Từ điển, Đề xuất Chính tả, – cho phép bạn đặt ngôn ngữ mong muốn, chọn từ điển, bao gồm cả từ điển tùy chỉnh, đồng thời làm việc với danh sách các từ được đề xuất sửa khi phát hiện lỗi chính tả. Các lệnh Chính tả và Ngôn ngữ của menu Công cụ cung cấp chức năng tương tự khi làm việc với tài liệu theo cách thủ công.

Bằng cách sử dụng đối tượng Tùy chọn, bạn có thể lập trình các tùy chọn ứng dụng và tài liệu khác nhau, giống như khi bạn chọn lệnh Tùy chọn trên trình đơn Công cụ.

Làm việc với các tài liệu và lớp Tài liệu

Khi một ứng dụng được mở, bộ sưu tập Tài liệu sẽ được tạo chứa tất cả các tài liệu đang mở. Khi bắt đầu, bộ sưu tập chứa ít nhất một tài liệu mới hoặc hiện có trước đó. Một tài liệu mới được thêm bằng phương thức Add và một tài liệu hiện có được thêm bằng phương thức Open của đối tượng Documents. Để có được tài liệu mong muốn, chỉ cần chỉ ra chỉ mục của nó - tên của tệp lưu trữ tài liệu hoặc số sê-ri của nó trong bộ sưu tập là đủ. Phương thức Item có thể được sử dụng cho cùng mục đích nhưng nó thường bị bỏ qua. Phương thức Lưu cho phép bạn lưu tài liệu và phương thức Đóng, bằng cách lưu tài liệu vào một tệp, sẽ đóng tài liệu và xóa nó khỏi bộ sưu tập.

Thuộc tính Dialogs chung trả về một tập hợp các hộp thoại. Hằng số wdDialogFileOpen chỉ định một hộp thoại cụ thể - một đối tượng của lớp Dialog.

Các lớp xác định cấu trúc của văn bản tài liệu

Văn bản là cơ sở của hầu hết các tài liệu. Nó có thể được cấu trúc bằng cách sử dụng các đơn vị khác nhau khi giải các bài toán biến đổi nhất định. Đơn vị nhỏ nhất của văn bản thường là ký tự. Ngoài ra, còn có các đơn vị sau: từ, câu, đoạn văn, cũng như các dạng lớn hơn: trang, đoạn văn, chương.

Các lớp Ký tự, Từ, Câu, Đoạn, Phần cho phép bạn làm việc với các chuỗi (bộ sưu tập) ký tự, từ, câu, đoạn văn và phần. Đơn vị lớn nhất sau đoạn văn là phần. Một phần tử của bộ sưu tập Ký tự, Từ và Câu lệnh là một đối tượng của lớp Phạm vi. Đối tượng Range cho phép bạn làm việc với một phần tử đơn lẻ hoặc một chuỗi phần tử tùy ý. Tài liệu, tài liệu phụ, đoạn văn, phần - tất cả chúng đều có phương thức hoặc thuộc tính Phạm vi trả về phạm vi được liên kết với đối tượng. Do đó, việc làm việc với văn bản được thực hiện bằng cách này hay cách khác thông qua các phương thức và thuộc tính của đối tượng Range.

Sự kiện đối tượng tài liệu

Đối tượng Document có thể phản hồi ba sự kiện xảy ra do hành động của người dùng.

Bảng 16

Sự kiện đối tượng tài liệu Tài liệu và các phần của nó

Hãy xem xét các lớp chính xác định cấu trúc tài liệu.

1. Tài liệu con (Subdocument) – một bộ sưu tập và chính tài liệu con đó. Có một số giới hạn hợp lý về kích thước của một tài liệu. Nếu một tài liệu có nhiều hơn 10–20 trang thì việc làm việc với nó sẽ trở nên bất tiện. Trong trường hợp này, nó chứa một tài liệu chính và các tài liệu phụ. Tài liệu chính trong trường hợp này có một tập hợp các tài liệu phụ, trên thực tế, mỗi tài liệu phụ là một tài liệu có thể được làm việc độc lập.

Phương thức AddFromRange của lớp SubDocuments tạo một tài liệu con bằng cách chọn vùng được chỉ định bởi tham số Range từ tài liệu chính.

2. Tables (Table), TablesOfAuthoritiesCategories (T.O.A.C), TablesOfAuthorities (TableOfAuthorities), TablesOfContents (TablesOfContent), TablesOffigures (TablesOffigure). Lớp Table định nghĩa các bảng “thông thường” với số lượng hàng và cột tùy ý và điền các trường tùy ý. Các lớp còn lại định nghĩa các bảng thuộc loại đặc biệt.

3. Hình dạng(Hình dạng), InlineShapes(InlineShape)– hai bộ sưu tập này với các thành phần của chúng cho phép bạn thêm bản vẽ vào tài liệu, nhưng không chỉ chúng. Các đối tượng ActiveX và OLE cũng là thành phần của các bộ sưu tập này. Các thành phần của hai bộ sưu tập này khác nhau ở cách chúng được gắn với tài liệu: bộ sưu tập đầu tiên có thể được di chuyển tự do, bộ sưu tập thứ hai được gắn chặt vào một khu vực nhất định của tài liệu.

4. Danh sách(Danh sách), ListParagraphs(ListParagraph), listTemplates (ListTemplate)– danh sách thuận tiện để nhập vào tài liệu khi xử lý bảng liệt kê. Danh sách có thể được thiết kế theo mẫu. Có hai nhóm mẫu: danh sách đánh số và danh sách bản tin. Bộ sưu tập ListTemplates chứa các mẫu thiết kế danh sách và lớp ListTemplate mô tả một mẫu cụ thể. Một mẫu được áp dụng cho một danh sách các đoạn văn và cung cấp cho nó cấu trúc được chỉ định bởi mẫu đó. Bộ sưu tập Danh sách chứa các danh sách tài liệu (danh sách đoạn văn) được định dạng dưới dạng danh sách đánh số hoặc danh sách bản tin. Bộ sưu tập ListParagraphs đại diện cho một danh sách các đoạn văn từ tất cả các danh sách trong tài liệu. Thuộc tính ListParagraphs, trả về một đối tượng của lớp tương ứng, không chỉ được sở hữu bởi tài liệu mà còn bởi các đối tượng Danh sách và Phạm vi. Vì vậy, với một danh sách - một đối tượng Danh sách, bạn có thể chọn danh sách các đoạn văn. Thông thường, bạn phải thực hiện thao tác ngược lại - áp dụng một trong các mẫu có thể có cho danh sách các đoạn văn, tạo cho nó một cấu trúc danh sách “thực”. Sau đó sử dụng đối tượng ListFormat.

5. Nhận xét(Nhận xét), Dấu trang(Dấu trang), Ghi chú cuối trang (FootNote), Ghi chú cuối(EndNote), Trường(Trường)– những bộ sưu tập này và các phần tử của chúng phản ánh các khái niệm độc lập nhưng tương tự nhau. Đây là những phần của tài liệu có liên quan gián tiếp đến nó. Trong quá trình xem tài liệu bình thường, chúng có thể không hiển thị.

Bộ sưu tập nhận xét và lớp nhận xét xác định nhận xét. Như bạn đã biết, nhận xét được đưa ra để giải thích các thuật ngữ hoặc khái niệm nhất định trong tài liệu. Về mặt hình thức, chúng được gán cho một khu vực nhất định - đối tượng phạm vi.

Một tài liệu lớn, các phần riêng lẻ phải được truy cập thường xuyên, nên được đánh dấu. Bộ sưu tập dấu trang chỉ định tất cả dấu trang cho một tài liệu nhất định.

Một cách bình luận khác là chú thích cuối trang. Chúng có thể có hai loại: trang con (ở cuối trang) và trang cuối (ở cuối tài liệu). Phần đầu tiên được thu thập trong bộ sưu tập chú thích cuối trang, phần thứ hai - phần chú thích.

6. Trường (Trường) – bộ sưu tập này cho phép bạn làm việc với các trường tài liệu. Một trong những tính năng của các trường là giá trị của chúng được cập nhật tự động tùy thuộc vào các điều kiện hoặc bối cảnh bên ngoài thay đổi.

7. Phạm vi câu chuyện (Phạm vi) – bộ sưu tập này đại diện cho một tập hợp các phần tài liệu được gọi là các đoạn (Story). Số lượng các đoạn tài liệu khác nhau được cố định. Bạn không thể thêm các phần tử vào bộ sưu tập này theo cách thông thường bằng phương thức Thêm. Các đoạn xuất hiện trong bộ sưu tập khi phần tương ứng của tài liệu được tạo.

Các phân đoạn có loại được chỉ định bởi các hằng số trong bảng liệt kê wdStoryType. Đoạn chính là văn bản của tài liệu, loại của nó được chỉ định bởi hằng số wdMainTextStory. Nhận xét, liên kết và chân trang tạo thành các đoạn thuộc loại khác, tức là bản thân đoạn đó là một đối tượng Phạm vi. Vì vậy, nhờ các mảnh, chẳng hạn, bạn có thể làm việc với một tập hợp các nhận xét dưới dạng một khu vực duy nhất.

8. Biến (Biến) – bạn có thể liên kết một tập hợp các biến loại Biến thể với một tài liệu. Đây là một bộ sưu tập quan trọng đối với các lập trình viên, vì thời gian tồn tại của các biến có trong nó trùng với thời gian tồn tại của tài liệu. Điều này giúp có thể lưu thông tin về hoạt động của một quy trình cụ thể giữa các phiên. Ví dụ: bạn có thể có bộ đếm đếm số lượng cuộc gọi đến macro và tùy thuộc vào điều này, xác định hoạt động tiếp theo của nó theo những cách khác nhau.

Đối tượng Phạm vi và Lựa chọn

Đối tượng Document có một phương thức Range trả về một đối tượng Range và một phương thức Select tạo ra một đối tượng Selection. Phương thức Range là một hàm trả về một đối tượng Range; Phương thức Select là một thủ tục không có tham số, tạo ra một đối tượng Selection như một hiệu ứng phụ. Đối tượng Range có phương thức Select để biến một vùng của đối tượng Range thành vùng chọn. Phương thức Select do đó xác định một đối tượng Selection mới. Một cách đối xứng, đối tượng Selection có thuộc tính Range trả về đối tượng Range tương ứng với vùng đã chọn.

Hầu hết các phần tài liệu được mô tả trước đây cũng là các phần (thuộc tính) của các đối tượng Phạm vi và Lựa chọn.

Đối tượng Range giống như một con búp bê làm tổ: mỗi vùng chứa một vùng nhỏ hơn. Đây là ví dụ về cài đặt chính xác (mặc dù không hiệu quả nhất) của đối tượng Phạm vi:

ActiveDocument.Range.Sections(1).Range.Paragraphs(l).Range.Sentences(1). Từ(1).Nhân vật(1)

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

Các đối tượng Phạm vi và Lựa chọn cho phép bạn thực hiện các thao tác cơ bản trên văn bản: “select”, “add”, “replace”, “delete”. Các đối tượng của chúng tôi có một tập hợp lớn các phương thức cho phép chúng tôi thực hiện các hoạt động này. Tất cả các phương pháp được thảo luận ở đây thuộc về cả hai đối tượng trừ khi có ghi chú khác.

Lựa chọn

Việc chọn một số phần văn bản về cơ bản có nghĩa là xác định đối tượng Phạm vi hoặc Lựa chọn. Các đối tượng xác định một vùng nhất định trong văn bản tài liệu và thuộc tính Bắt đầu và Kết thúc của chúng cho phép bạn đặt điểm bắt đầu và kết thúc của vùng này. Bằng cách thay đổi giá trị thuộc tính, bạn có thể đặt vùng chọn mong muốn.

Di chuyển là phương pháp chính để di chuyển điểm chèn. Các phương pháp còn lại trong nhóm này là những sửa đổi ở mức độ này hay mức độ khác. Phương thức Move(Unit, Count) thu nhỏ vùng thành một điểm, kéo nó về đầu hoặc cuối, sau đó di chuyển điểm chèn. Tham số Unit xác định các đơn vị chuyển động và Count – số lượng các đơn vị này (mặc định là 1). Dấu của biến Count xác định hướng co và chuyển động. Các giá trị dương của tham số này chỉ định sự co về cuối và chuyển động về phía trước, các giá trị âm – co về đầu và chuyển động về phía sau. Việc thu gọn thuần túy mà không di chuyển điểm chèn được chỉ định là chuyển động của một đơn vị. Phương thức trả về số đơn vị mà chuyển động thực sự xảy ra hoặc 0 nếu chuyển động không được thực hiện. Tham số Unit chấp nhận các giá trị wdCharacter (mặc định), wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow và wdTable.

Các phương pháp di chuyển không ảnh hưởng đến văn bản - chúng chỉ thay đổi vùng được chỉ định bởi các đối tượng Phạm vi và Lựa chọn. Vì vậy, các phương pháp này chỉ áp dụng được cho các biến Range chứ không áp dụng được cho các vùng cố định. Ví dụ, ghi lại

ActiveDocument.Paragraphs(l).Range.Move

không có hiệu lực vì khu vực đoạn đầu tiên là bất biến. Phương thức Move thu nhỏ vùng thành một điểm, điểm này sẽ được di chuyển, do đó sau khi thực hiện, vùng đó sẽ biến mất, chỉ còn lại điểm chèn. Các phương thức MoveStart và MoveEnd di chuyển điểm bắt đầu hoặc điểm kết thúc của một khu vực, thường là mở rộng khu vực đó.

Xóa văn bản

Phương thức Xóa cho phép bạn xóa văn bản. Khi được gọi mà không có tham số, nó sẽ xóa đối tượng Phạm vi hoặc Lựa chọn đã gọi nó. Khi được áp dụng ở dạng Delete(Unit,Count) , phần văn bản trong vùng được chỉ định sẽ bị xóa. Tham số Unit chỉ định các đơn vị, nhưng khi xóa chỉ có thể có hai giá trị: wdWord và wdCharacter. Tham số Count chỉ định số lượng đơn vị cần loại bỏ. Nếu vùng được thu gọn thành một điểm, các ký tự trước hoặc sau điểm chèn sẽ bị xóa, tùy thuộc vào dấu của tham số Count.

Chèn văn bản

Nhóm các phương thức Insert của các đối tượng Range và Selection cho phép bạn chèn vào tài liệu. Để chèn văn bản, hãy sử dụng các phương thức InsertBefore(Text) và InsertAfter(Text). Tham số văn bản của loại chuỗi chỉ định văn bản sẽ được chèn vào trước hoặc sau khu vực được chỉ định bởi phạm vi hoặc đối tượng lựa chọn. Sau khi bạn dán văn bản, vùng này sẽ tự động mở rộng để bao gồm văn bản đã thêm.

Thuộc tính Text cho phép bạn thay thế văn bản trong vùng đã chọn, do đó không cần gọi phương thức Insert(Text). Các phương thức InsertBefore và InsertAfter an toàn vì văn bản được thêm vào mà không làm thay đổi nội dung của vùng. Một vấn đề hoàn toàn khác là các phương pháp chèn không an toàn. Khi bạn chèn vào một vùng, chẳng hạn như sử dụng phương thức InsertSymbol hoặc InsertParagraph, nội dung của vùng sẽ được thay thế.

Làm việc với bộ đệm

Phương thức Soru, không có tham số, sao chép một đối tượng (nội dung của một vùng) vào bộ đệm. Phương thức cắt, hoạt động tương tự, cũng sẽ xóa đối tượng. Nhưng bản thân đối tượng không bị xóa - nó chỉ được thu gọn đến một điểm để có thể thực hiện các thao tác tiếp theo trên nó.

Đôi khi không phải văn bản được sao chép vào bộ đệm mà là định dạng của nó. Điều này được thực hiện bằng phương pháp CopyFormat, sao chép định dạng dựa trên ký tự đầu tiên của đối tượng được chọn. Nếu ký tự này là dấu đoạn văn thì định dạng đoạn văn sẽ được sao chép. Chỉ đối tượng lựa chọn mới có phương thức CopyFormat.

Phương thức Dán cho phép bạn đặt (“dán”) nội dung của bộ đệm vào vùng được chỉ định bởi các đối tượng Phạm vi và Lựa chọn. Thao tác này nguy hiểm vì nó thay thế chứ không phải thêm văn bản. Do đó, phương pháp Dán thường được áp dụng cho các đối tượng Phạm vi và Lựa chọn mà trước đó đã được thu gọn thành điểm chèn. Phương thức PasteFormat áp dụng định dạng được lưu trong bộ đệm cho đối tượng Selection.

Ví dụ: hãy tạo một macro chèn danh sách “bài học, bài kiểm tra, đã đậu!”, sao chép nó và đặt lại vào trang tính.

Macro phụ1()

Với Selection.ParagraphFormat

Selection.TypeText Text:="Làm việc với văn bản:"

Lựa chọn.TypeParagraph

ListGalleries(wdBulletGallery).ListTemplates(1)._ListLevels(1)

ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""

Selection.Range.ListFormat.ApplyListTemplate

ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior

Selection.TypeText Text:="bài học"

Lựa chọn.TypeParagraph

Selection.TypeText Văn bản:="kỳ thi"

Lựa chọn.TypeParagraph

Selection.TypeText Văn bản:="đã qua"

Lựa chọn.TypeParagraph

Lựa chọn.Range.ListFormat.RemoveNumbers

NumberType:=wdNumberParagraph

Lựa chọn.TypeParagraph

Selection.Font.Bold = wdToggle

Selection.Font.Italic = wdToggle

Selection.TypeText Text:="Hoàn thành công việc!"

Lựa chọn.Toàn bộ câu chuyện

Selection.PasteAndFormat(wdPasteDefault)

5.2. Định dạng một tài liệu

Làm việc với văn bản(tiếp theo)

Tính năng quan trọng nhất khi làm việc với VBA trong Word là chèn văn bản vào tài liệu khi làm việc với các ứng dụng. Điều này được thực hiện bằng cách sử dụng các đối tượng Phạm vi và Lựa chọn, là đối tượng trung tâm của hầu hết mọi thao tác có thể được thực hiệ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. Tuy nhiên, chúng tôi sẽ xem xét những gì bạn có thể làm với tài liệu khi tạo nó.

Một tài liệu Word mở đã chứa sẵn các đối tượng Phạm vi tương ứng với nhiều thành phần của nó. Mỗi đoạn văn, bảng, ô bảng, nhận xét, v.v. đều xác định phạm vi. Ví dụ: để chèn một số văn bản vào tài liệu hiện có, bạn cần viết mã:

ActiveDocument.Paragraphs(1).Range.Text = "Oxo-xo!!"

Hơn nữa, dòng này sẽ nằm ở cuối đoạn văn hiện có. Mặt khác, bằng cách sử dụng đối tượng Selection, bạn cũng có thể chèn một số văn bản vào tài liệu bằng cách sử dụng phương thức Add và gán thuộc tính Text cho đối tượng Selection:

Selection.Text = "Học cách làm việc với văn bản trong tài liệu Word là một phần quan trọng của việc học lập trình VBA," + TextBox1.Text + ", và đáp ứng nhu cầu của tất cả các lập trình viên!"

Kết quả của việc thực thi mã chương trình này, dòng sau sẽ được hiển thị trong tài liệu Word:

Học cách làm việc với văn bản trong tài liệu Word là một phần quan trọng của khả năng lập trình bằng VBA, Svetlana và đáp ứng nhu cầu của mọi lập trình viên!

Ví dụ: ở đây, tên Svetlana được đọc từ một trường văn bản thuộc một dạng nào đó chỉ có một trường nhập tên và nút “Văn bản đầu ra” (Hình 64).

Cơm. 64. Mẫu nhập dữ liệu

Khi làm việc với văn bản trong bảng tính Word, bạn cần biết các mã sau:

độ nét màu sắc

Lựa chọn.Font.Color =

wdColorRed – đỏ

wdColorDarkRed – màu đỏ tía

wdColorDarkTeal – màu ngọc lam

wdColorBlue – màu xanh

wdColorGreen – màu xanh lá cây

wdColorBlack – đen

wdColorOrange – màu cam

xác định hàm lượng chất béo

Lựa chọn.Font.Bold =

wdToggle – sự táo bạo

định nghĩa về phong cách

Lựa chọn.Font.Italic=

wdToggle – in nghiêng

căn chỉnh độ nét

Lựa chọn.ParagraphFormat.Alignment=

wdAlignParagraphRight – căn lề phải

wdAlignParagraphCenter – căn giữa

wdAlignParagraphJustify – căn lề trái

chèn một câu cụ thể vào văn bản

Selection.TypeText Text:="Ví dụ về làm việc với văn bản"

chèn một dòng trống mới

Lựa chọn.TypeParagraph

thiết lập kích thước chữ

Lựa chọn.Font.Size = 14

Ghi chú. Để định dạng chính xác mã của bạn, hãy sử dụng khả năng tạo macro viết chương trình.

Một trong những thành phần thiết kế của hộp thoại là điều khiển Hình ảnh. Thuộc tính chính của nó:

Autosize – thay đổi kích thước của hình ảnh trên biểu mẫu (tự động hoặc không);

Hình ảnh – hiển thị một tệp đồ họa được hiển thị trên biểu mẫu;

pictureSizeMode – đặt tỷ lệ của hình ảnh (không phải toàn bộ hình ảnh, toàn bộ bề mặt của đối tượng, hoàn toàn bên trong đối tượng);

PictureAligment – ​​​​đặt vị trí của hình ảnh bên trong đối tượng (trái, phải, trên, dưới);

pictureTilling – bao phủ một đối tượng bằng một bức tranh khảm.

Các thuộc tính này được đặt trong cửa sổ thuộc tính đối tượng hoặc được chỉ định trong danh sách.

Ví dụ 30. Viết chương trình tính lượng nhiệt tỏa ra trong dây dẫn khi có dòng điện chạy qua nó. Công thức tính lượng nhiệt được gọi là định luật Joule–Lenz:

trong đó Q là lượng nhiệt tính bằng Joules;

U - điện áp tính bằng vôn;

t – thời gian tính bằng giây;

S - diện tích mặt cắt ngang của dây dẫn tính bằng milimét vuông;

l - chiều dài dây dẫn tính bằng mét;

p – điện trở suất của vật liệu dẫn điện, tính bằng Ohm? mm2 /m.

Tất cả dữ liệu ban đầu được nhập vào các trường văn bản của biểu mẫu. Dựa trên kết quả tính toán, kết quả được hiển thị dưới dạng ghi chú giải thích trong tài liệu và kết quả bằng số được hiển thị trong cửa sổ biểu mẫu đặc biệt.

Công nghệ thực thi

Tạo một biểu mẫu theo hình được hiển thị. 65.

Cơm. 65. Dạng phát triển của ví dụ 30 trong điều kiện làm việc và xuất thông tin kết quả thành tài liệu word

Khi tạo biểu mẫu, hãy đặt các thuộc tính thành phần cần thiết. Đặt thuộc tính Locked của TextBox6 thành True để ngăn người dùng vô tình gõ văn bản vào đó.

Mô tả các thủ tục

CommandSub riêng tư1_Click()

Nếu Documents.Count = 0 thì Documents.Add

Selection.Text = "Khi dòng điện có điện áp " + TextBox1.Text + "vôn đi qua dây dẫn có chiều dài " + TextBox4.Text + " mét, mặt cắt ngang " + TextBox3.Text + " sq. mm và điện trở suất " + TextBox5.Text + " Ohm*mm2/m for " + TextBox2.Text + " giây được đánh dấu " + TextBox6.Text + " joules nhiệt"

Hướng lựa chọn.Thu gọn:=wdCollapseEnd

Riêng tư Sub CommandButton2_Click()

TextBox phụ riêng tư1_Change()

TextBox2_Change() phụ riêng tư

TextBox3_Change() phụ riêng tư

TextBox4_Change() phụ riêng tư

TextBox phụ riêng tư5_Change()

Scet phụ riêng tư()

Nếu IsNumeric(TextBox1.Text) = True Và

IsNumeric(TextBox2.Text) = Đúng Và

IsNumeric(TextBox3.Text) = Đúng Và

IsNumeric(TextBox4.Text) = Đúng Và

IsNumeric(TextBox5.Text) = Đúng Và Không Val(TextBox4.Text)

0 Và Không Val(TextBox5.Text) = 0 Thì

rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) *

Val(TextBox3.Text)) / (Val(TextBox4.Text) *

Val(TextBox5.Text))

TextBox6.Text = Str$(rez)

CommandButton1.Enabled = Đúng

TextBox6.Text = ""

CommandButton1.Enabled = Sai

Ghi chú. Khi chạy ứng dụng này, tất cả giá trị trường đầu vào phải là số. VBA có chức năng đặc biệt để kiểm tra xem chuỗi nhập vào có phải là bản ghi số hay không - IsNumeric. Để kiểm tra xem các giá trị trong hai trường đầu vào cuối cùng có khác 0 hay không, hãy sử dụng hàm Val để chuyển đổi biểu thức chuỗi thành biểu thức số nếu biểu thức chuỗi này chứa các chữ số ở đầu (hoặc mọi thứ đều bao gồm chúng).

Hàm Str thực hiện ngược lại với những gì Val thực hiện—nó chuyển đổi giá trị số của một biểu thức thành giá trị chuỗi, cho phép giá trị đó được coi là một chuỗi.

Do đó, hàm Val và Str chuyển đổi kiểu dữ liệu của các biến mà chúng xử lý, từ chuỗi sang số và từ số sang chuỗi, tương ứng (xem Chương 3).

Tạo nút hoặc bảng điều khiển trong Word

Bạn không thể gán nút hoặc mục menu cho biểu mẫu để gọi trực tiếp ứng dụng từ Word - điều này chỉ có thể thực hiện được đối với các mô-đun. Vì vậy, bạn cần phải sử dụng phương pháp sau. Tạo macro (Menu + Insert + Module) trong dự án đang mở:

Đổi tên macro này theo ý muốn của bạn, chẳng hạn như Teplo. Và làm theo các bước sau.

1. Nhấp chuột phải vào bất kỳ đâu trên thanh công cụ.

2. Từ menu này, chọn lệnh Cài đặt (hoặc Công cụ + Cài đặt).

3. Trong hộp thoại Cài đặt, nhấp vào phím tắt tab Lệnh.

4. Cuộn xuống danh sách Danh mục và tìm Macro. Chọn mục này. Trong danh sách “Lưu trong”, chọn tên tài liệu mà macro đã được tạo (Hình 66).

Cơm. 66. Tìm macro để tạo nút

5. Trong cửa sổ bên phải, tìm macro (hoặc chương trình VBA) cần thiết.

6. Kéo tên macro hoặc chương trình này vào thanh công cụ.

7. Tạo nhãn nút tương ứng và nếu cần, hình ảnh (sử dụng nút chuột phải).

8. Đóng hộp thoại Setup để hoàn tất.

Khi tất cả các bước trên được hoàn thành, một nút để khởi chạy ứng dụng sẽ được tạo.

Nhiệm vụ củng cố tài liệu

Ví dụ 31. Tạo một chương trình cho phép bạn điền đơn đăng ký tiêu chuẩn của sinh viên một cơ sở giáo dục, nếu tất cả dữ liệu cần thiết được điền vào các trường văn bản tương ứng của biểu mẫu và lý do vắng mặt trong lớp được chọn từ danh sách thả xuống ( Hình 67, 68).

Cơm. 67. Dạng phát triển của ví dụ 31 ở trạng thái làm việc

Ví dụ 32. Tạo một chương trình cho phép bạn tính toán số tiền chi cho xăng khi đi du lịch trong nước.

Vui lòng lưu ý những điều sau: điều kiện đi lại có thể là: một chiều, khứ hồi, bạn có thể đi xe của người khác (những điều kiện này được tính đến trong danh sách thả xuống “điều kiện đi lại” trên biểu mẫu đã tạo).

Gửi giáo viên chủ nhiệm lớp

Nhóm AC-42

Sidorov O.I.

từ một sinh viên

Petrenko Oleg Ivanovich

Tuyên bố Petrenko Oleg Ivanovich18.05.2007

Cơm. 68.

Kết quả thu được được tính theo công thức:

Kết quả = quãng đường * (mức tiêu thụ xăng trên 100 km) / 100*giá xăng mỗi lít.

Xin lưu ý rằng nếu bạn chọn đi du lịch “bằng xe của người khác” thì giá xăng là 0 rúp.

Cơm. 69. Dạng phát triển của ví dụ 32 ở trạng thái làm việc

Ngoài ra, hãy lưu ý rằng nếu kết quả tính toán vượt quá 400 rúp thì sẽ hiển thị thông báo “Chúng ta có nên đi chợ không?”

Khi tạo biểu mẫu, hãy tuân thủ Hình. 69, khi xuất văn bản sang tài liệu Word - fig. 70.

Khi đi đến một ngôi nhà cách đó 55 km, với giá xăng mỗi lít là 18,50 rúp, mức tiêu thụ xăng sẽ là 101,75 rúp.

Cơm. 70.

Ví dụ 33. Phát triển một chương trình tạo ra Báo cáo thu nhập của nhà đầu tư Ngày nay. Xin lưu ý rằng trong giao diện biểu mẫu lãi suất được chọn từ danh sách thả xuống (cung cấp hai loại lãi suất).

Cơm. 71. Dạng phát triển của ví dụ 33 ở trạng thái làm việc

Khi tính toán, tuân thủ các công thức sau:

nếu sơ đồ tính toán đơn giản thì

Thu nhập = số tiền gửi + số tiền gửi * lãi suất/100*kỳ hạn/360;

nếu sơ đồ tính toán phức tạp thì

Thu nhập = số tiền gửi + số tiền gửi * lãi suất/100*kỳ hạn/360 +0,01*(số tiền gửi * lãi suất/100*kỳ hạn/360).

Khi phát triển giao diện biểu mẫu, hãy dựa vào hình đã cho. 71 và khi xuất các phép tính ra văn bản Word - Hình 2. 72.

Báo cáo thu nhập

Hiện tại, công dân Olga Konstantinovna Evseeva có lãi suất đơn giản trên tài khoản của mình với số tiền đầu tư ban đầu là 1000 rúp. trong 150 ngày với tỷ lệ 2% là 1008,33 rúp.

Cơm. 72.Định dạng gần đúng để xuất các phép tính sang tài liệu word

Kết quả của các phép tính với phần giải thích phù hợp sẽ được hiển thị trong tài liệu Word và kết quả bằng số của các phép tính được đưa ra trong trường biểu mẫu.

Ví dụ 34. Phát triển một chương trình cho phép bạn điền đơn xin khôi phục thẻ sinh viên nếu thẻ bị hỏng (bị đánh cắp, bị mất, bị giặt, v.v.). Chỉ định lý do thiệt hại trong danh sách thả xuống của biểu mẫu đã tạo.

Khi làm việc, hãy tuân thủ các hình sau. 73 và 74.

Chữ nghiêng biểu thị các biểu thức được chương trình chèn vào sau khi điền vào các trường văn bản tương ứng của biểu mẫu đang được phát triển.

Cơm. 73. Dạng phát triển của ví dụ 34 ở trạng thái làm việc

Cơm. 74.Định dạng gần đúng để xuất một câu lệnh thành tài liệu word

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], [,mặc định] [,xpos] [,ypos])

Tranh luận:


tin nhắn– một biểu thức chuỗi được hiển thị dưới dạng thông báo trong hộp thoại. Có thể chứa nhiều dòng. Để phân tách các dòng, bạn có thể sử dụng dấu xuống dòng (chr(13)), nguồn cấp dòng (chr(10)) hoặc kết hợp các phím này (chr(13) & chr(10));

tiêu đề

Mặc định– một biểu thức chuỗi được hiển thị trong trường đầu vào làm mặc định nếu người dùng không nhập chuỗi khác. Nếu đối số này bị bỏ qua, trường đầu vào sẽ trống;

Xpos– một biểu thức số xác định khoảng cách theo chiều ngang giữa viền trái của hộp thoại và cạnh trái của màn hình;

Ypos– một biểu thức số xác định khoảng cách theo chiều dọc giữa đường viền trên cùng của hộp thoại và cạnh trên cùng của màn hình.

Để chuyển thông tin này (giá trị đã nhập trong trường đầu vào) vào chương trình, hãy gán giá trị được hàm inputBox trả về cho một biến chuỗi (Hình 75), ví dụ:

strA=InputBox("Bạn thích ghế nào?","Đường sắt Nga","Bên cửa sổ")

Cơm. 75. Kết quả của hàm inputBox


Thủ tục MsgBox hiển thị một hộp thoại chứa thông báo, đợi người dùng nhấn nút và sau đó trả về một Số nguyên cho biết nút nào đã được nhấn.

Cú pháp:

MsgBox(tin nhắn [, nút] [, tiêu đề] [, help_file, phần])

Tranh luận:

tin nhắn– một biểu thức chuỗi được hiển thị dưới dạng thông báo trong hộp thoại;

nút - một biểu thức số biểu thị tổng các giá trị cho biết số lượng và loại nút được hiển thị, loại biểu tượng được sử dụng, nút chính và phương thức hộp thông báo. Giá trị mặc định là 0. Xem bảng để biết tất cả các giá trị của đối số này. 17, 18;

tiêu đề– một biểu thức chuỗi hiển thị trên thanh tiêu đề của hộp thoại. Nếu đối số này bị bỏ qua, tên ứng dụng sẽ được đặt trên chuỗi;

tập tin trợ giúp– một biểu thức chuỗi chỉ định tên của tệp trợ giúp chứa thông tin trợ giúp về hộp thoại này. Nếu đối số này được chỉ định thì đối số ngữ cảnh cũng phải có mặt;

chương - một biểu thức số xác định số phần tương ứng của hệ thống trợ giúp.


Bảng 17


Ghi chú. Các nút đầu tiên được kích hoạt theo mặc định.


Bảng 18

Giá trị đối số của nút thủ tục MsgBox

Nếu chỉ có hai nút trong hộp thông báo, câu lệnh If...then sẽ rất hữu ích để tìm ra nút nào đã được nhấp vào. Ví dụ:

Nếu MsgBox("Start?", vbYesNo)= vbYes thì

Toán tử cho hành động của nút này

Toán tử cho hành động của nút khác

Ví dụ 35 . Tạo một chương trình theo cách mà khi bạn khởi chạy biểu mẫu, hãy nhập tên vào trường văn bản và nhấp vào nút “Xuất văn bản”, một hộp thoại xuất hiện yêu cầu quyền xuất văn bản (Hình 76).



Cơm. 76. Mẫu 35 trong dạng xem thiết kế


Liệt kê công việc theo mẫu

CommandSub riêng tư1_Click()

Nếu MsgBox("Văn bản đầu ra?", vbYesNo) = vbYes Thì

Nếu Documents.Count = 0 thì Documents.Add Selection.Text = “Học cách làm việc với văn bản trong tài liệu Word là một phần quan trọng của việc học lập trình VBA, “+ TextBox1.Text + “, và đáp ứng nhu cầu của tất cả mọi người lập trình viên!”

Lựa chọn.Font.Color = wdColorBlue

Selection.Font.Bold = wdToggle

Selection.Font.Italic = wdToggle

Khi khởi chạy ứng dụng (Hình 77), câu sau sẽ xuất hiện trong tài liệu Word:

Học cách làm việc với văn bản trong tài liệu Word là một phần quan trọng của khả năng lập trình trong VBA, Sveta và đáp ứng nhu cầu của mọi lập trình viên!

Cơm. 77. Mẫu ví dụ 35 ở chế độ làm việc

Nhiệm vụ củng cố tài liệu

Ví dụ 36. Tạo một hình thức mô phỏng trò chơi ngửa và sấp đơn giản nhất (Hình 78). Người chơi đặt cờ thay vì tung đồng xu và máy tính sau khi nhấn nút tung đồng xu kích hoạt một số ngẫu nhiên tương ứng với mặt ngửa hoặc mặt ngửa. Nếu trùng khớp thì máy tính thắng, nếu không khớp thì người chơi thắng. Tất cả các hành động đều đi kèm với hộp thoại bật lên.

Công nghệ thực thi

1. Tạo một biểu mẫu để triển khai trò chơi này.

2. Mô tả quy trình.

Nút tung đồng xu

CommandSub riêng tư1_Click()

xu = Int(2 * Rnd)

Nếu OptionButton1.Value = True thì

Nếu xu = 0 thì MsgBox “hết may rồi. Tốt hơn nên bắt đầu học VBA"

Nếu xu = 1 thì MsgBox “lucky. Xin chúc mừng, bạn đã thắng"

Nếu OptionButton2.Value = True thì


Cơm. 78. Mẫu phát triển của ví dụ 36 ở trạng thái hoạt động và hộp thoại phản hồi kết quả của trò chơi

Nếu xu = 1 thì MsgBox “hết may rồi. Tốt hơn nên bắt đầu học VBA"

Nếu xu = 0 thì MsgBox “lucky. Xin chúc mừng, bạn đã thắng"

Nút thoát trò chơi

Riêng tư Sub CommandButton2_Click()

Dim ima As String

intA = MsgBox(“Nhấn nút!”, vbYesNoCancel +

vbExclaim + vbDefaultButton3, “VBA dành cho người chưa biết!”)

Nếu MsgBox("bắt đầu?", vbYesNoCancel) = vbYes Thì

ima = inputBox("nhập tên của bạn", "Hộp nhập ví dụ")

Nếu tôi<>""Sau đó

MsgBox "Xin chào," & ima, vbInformation, "Ví dụ về hộp tin nhắn"

MsgBox "không biết, bạn quên nhập tên của mình" & ima, vbExclaim, "một ví dụ khác về hộp thông báo" End If

Nếu MsgBox(“Bạn có chắc là mình đã nghĩ vậy không?”, vbYesNoCancel) = vbNo Then

MsgBox ("ha ha")

Khác: MsgBox “Cuối cùng thì!”

Ví dụ 37 . Trong ứng dụng trò chơi đã phát triển, hãy cung cấp tính năng tạo cửa sổ “Ngân hàng”, trong đó kết quả điểm của người chơi sẽ được hiển thị khi trò chơi dừng lại. Luật chơi: khi người chơi thắng thì cộng một vào số tiền trong ngân hàng, khi thua thì cộng vào máy tính (trừ đi số tiền trong ngân hàng).

Cung cấp tất cả các hộp thoại cần thiết.

Ví dụ 38. Mô phỏng một trò chơi ngửa và sấp hoàn chỉnh. Người chơi gửi một số tiền nhất định vào ngân hàng. Bạn không thể thêm tiền vào ngân hàng trong khi chơi trò chơi. Trò chơi bao gồm một chuỗi các bước được tiên nghiệm hữu hạn. Ở bước tiếp theo, người chơi nghĩ về đầu hoặc đuôi. Máy tính "lật" một đồng xu. Nếu “đồng xu rơi về cùng một phía” mà người chơi chỉ định thì ngân hàng sẽ tăng thêm một, nếu không thì sẽ giảm đi một. Trò chơi kết thúc theo yêu cầu của người chơi hoặc khi giá trị ngân hàng bằng 0 hoặc hơn 10.000 rúp. (số tiền nhất định). Người chơi lấy nội dung của ngân hàng cho chính mình. Bạn có thể cung cấp số tiền tối đa và tối thiểu có trong ngân hàng trong suốt trò chơi.

Ghi chú. Bạn có thể mô phỏng việc ném xúc xắc bằng hàm Int(6* Rnd)+1. Luật chơi thay đổi: ai ném được nhiều nhất sẽ thắng.

Công nghệ thực thi

Hãy xem xét một trong những lựa chọn để giải quyết vấn đề này. Hãy làm phức tạp nhiệm vụ này bởi thực tế là mỗi cửa sổ tiếp theo được gọi bằng một hành động tương ứng.

1. Để hộp thoại đầu tiên xuất hiện khi bạn khởi động ứng dụng (Hình 79). Khi bạn nhấp vào nút “Bắt đầu trò chơi”, hộp thoại xuất hiện hỏi tên người chơi và xác nhận để bắt đầu trò chơi (xem Hình 80). Sau đó, biểu mẫu nhập cược sẽ xuất hiện (xem Hình 81).

CommandSub riêng tư1_Click()

imya = inputBox("nhập tên của bạn", "Đăng ký", "????")

Nếu MsgBox("Bắt đầu?", vbYesNo, "Bạn đã đổi ý chưa?") =

Biểu mẫu này thực hiện lựa chọn đặt cược ban đầu và khởi chạy biểu mẫu chính như ví dụ 38.


Cơm. 79. Ví dụ 38 Hộp thoại khởi chạy trò chơi


Cơm. 80. Hộp thoại Bắt đầu trò chơi


Cơm. 81. Hộp thoại Lựa chọn Giá thầu


Cái nút Ném mô phỏng người chơi tung đồng xu, tính toán số tiền thắng và thua của người chơi, hiển thị các giá trị tương ứng trong cửa sổ văn bản kèm theo thông báo về điểm số trò chơi (Hình 82).


Cơm. 82. Dạng chính của ví dụ 38, mô phỏng trò chơi ngửa và sấp


Nút ném

CommandSub riêng tư1_Click()

TextBox1.Value = TextBox1.Value + 1

Nếu b = Fix(Rnd * 2 + 1) thì

TextBox4.Value = TextBox4.Value + 1

TextBox5.Value = TextBox5.Value + 1

TextBox4.Value = TextBox4.Value – 1

TextBox6.Value = TextBox6.Value + 1

Nếu TextBox4.Value< 1 Then

MsgBox (“Bạn thua!!!”)

Nếu Val(TextBox2.Text)< Val(TextBox4.Text) Then

TextBox2.Value = Val(TextBox4.Text)

Nếu Val(TextBox3.Text) > Val(TextBox4.Text) thì

TextBox3.Value = Val(TextBox4.Text)

OptionButton1.Value = Sai

OptionButton2.Value = Sai

CommandButton1.Enabled = Sai

Cái nút Lối ra kết thúc trò chơi và đưa ra thông báo cuối cùng (xem Hình 83).

Riêng tư Sub CommandButton2_Click()

MsgBox("Batch" + TextBox1.Value + (Chr(13)) + "trong jar" + TextBox4.Value + (Chr(13)) + "mức tối đa của bạn" + TextBox2.Value + (Chr(13)) + " mức tối thiểu của bạn" + TextBox3.Value + (Chr(13)) + "score" + TextBox5.Value + ngụ ý + TextBox6.Value)

Khởi tạo biểu mẫu người dùng phụ riêng tư()

Dỡ bỏ UserForm2

OptionButton1.Value = Đúng

TextBox4.Value = a

Label6.Caption = tên

TextBox2.Value = TextBox4.Value

TextBox3.Value = TextBox4.Value

Cơm. 83. Tính toán cuối cùng của trò chơi ví dụ 38


Ghi chú.Để trò chơi hoạt động chính xác, cần tạo một mô-đun để khai báo các biến toàn cục chứa thông tin về giá trị đặt cược ban đầu và tên người chơi, cũng như khởi chạy dạng trò chơi đầu tiên bằng nút trên thanh công cụ . Ngoài ra, cần phải sửa đổi tất cả các mô-đun cho các biểu mẫu tương ứng (Hình 84).



Cơm. 84. Khai báo các biến toàn cục và tạo mô-đun khởi chạy cho mẫu trò chơi chính trong ví dụ 38

6.2. Tạo và tự động điền các biểu mẫu tài liệu tiêu chuẩn

Tạo chương trình VBA

Ví dụ 39. Khi đóng học phí, sinh viên gửi tiền vào quầy thu ngân, tại đây nhân viên kế toán sẽ điền tay vào biên lai thanh toán. Tự động hóa công việc thủ công của nhân viên kế toán bằng cách tạo biểu mẫu điền thẻ thanh toán, biểu mẫu này có thể được gửi đi in nếu cần thiết.

Công nghệ thực thi

Giao diện mẫu và ứng dụng

Với tư cách là một giao diện, trước tiên chúng ta sẽ xem xét dạng đơn giản nhất của một ứng dụng đáp ứng các điều kiện của nhiệm vụ và bao gồm các trường nhập văn bản tương ứng và các nút thao tác (Hình 85).


Cơm. 85. Mẫu ví dụ 39 đang hoạt động


Hãy bắt đầu bằng cách phát triển một mẫu tài liệu tiêu chuẩn (dạng in). Biểu mẫu này có thể được tạo dựa trên một mẫu có các trường văn bản trong đó thông tin thay đổi sẽ được nhập vào. Để thực hiện việc này, hãy chạy các lệnh sau: Tài liệu + Tạo nên.Ở bên phải cửa sổ tài liệu mới, chọn phần Mẫu và siêu liên kết Trong máy của tôi(Hình 86). Sau đó một hộp thoại sẽ xuất hiện Mẫu(Hình 87), trong đó trên tab Là phổ biến bạn cần chọn biểu tượng tài liệu mới và đặt công tắc Vật mẫu trong khung Tạo nên.

Bật bảng điều khiển Các hình thức(Xem + Thanh công cụ + Biểu mẫu). Đối với công việc tiếp theo, bạn sẽ chỉ cần một thành phần của bảng này - Trương Văn bản

cho phép bạn tạo trường thay đổi trên biểu mẫu (thông qua mã hoặc bởi người dùng). Bằng cách chọn bằng con trỏ một vị trí trong tài liệu Word để xác định trường tương ứng và đặt phần tử vào đó Cánh đồng, bạn có thể nhận được biểu mẫu được yêu cầu. Để mở rộng trường, bạn cần đặt con trỏ vào đó và nhấn nhiều lần Chuyển hướng. Để gạch chân một trường, hãy chọn trường đó làm văn bản và áp dụng gạch chân cho trường đó.



Cơm. 87. Mẫu hộp thoại


Tạo một mẫu tài liệu như hình 1. 88.


Cơm. 88. Mẫu văn bản word nhập dữ liệu để in


Trong một số trường (các trường được đánh dấu màu xám), bạn có thể nhập các giá trị mặc định. Giá trị mặc định được đặt bằng hộp thoại Của cải, có thể được hiển thị như thế này:

nhấp chuột phải vào trường văn bản được yêu cầu;

chọn từ menu ngữ cảnh xuất hiện Của cải ;

chỉ định giá trị mặc định (Hình 89).

Giá trị mặc định cho phép bạn chỉ thay đổi những dữ liệu không thường xuyên thay đổi. Ví dụ: học phí về cơ bản là giống nhau - 1.500 rúp, vì vậy giá trị của trường này sẽ không thay đổi thường xuyên.



Cơm. 89.Đặt tham số cho trường văn bản “opt_amount”


Hãy xem xét các thành phần cần thiết khác của cửa sổ làm việc "Tùy chọn trường văn bản". Trong lĩnh vực Kiểu cho biết loại giá trị có thể được đặt trong trường. Bạn có thể điền vào trường Chiều dài tối đa, mặc dù mã VBA quan trọng nhất để sử dụng sau này là trường Đánh dấu. Giá trị của trường này sẽ đóng vai trò là nhãn nơi đặt con trỏ trước khi đặt phần thông tin tiếp theo vào tài liệu. Do đó, sau khi xác định tất cả các trường bắt buộc, bạn cần cung cấp nhãn có ý nghĩa cho từng trường. Đối với biểu mẫu tài liệu Word được hiển thị trong Hình. 86, chúng tôi đặt (tuần tự) các nhãn sau:

Họ – họ của học sinh;

Tên – tên học sinh;

Bảo trợ – bảo trợ của học sinh;

Nhóm – tên của nhóm;

Tháng_thanh toán – ​​tên của tháng thực hiện thanh toán;

Payment_amount – số tiền gửi;

Họ và tên_kế toán viên – họ của người kế toán tiếp nhận;

Payment_date – ngày thanh toán.

Sau khi hoàn thành việc phát triển biểu mẫu tài liệu, chúng tôi sẽ lưu nó dưới tên Thanh toán cho việc học trong danh mục Mẫu. Trong bộ lễ phục. 88 hiển thị mẫu của tài liệu đã tạo với các trường thay đổi.

Tạo mô-đun In cho mẫu tài liệu

Danh sách chứa mã cho quy trình in biểu mẫu biên nhận thanh toán, các quy trình gỡ lỗi và liên quan.


Danh sách(vào trong Mô-đun 1 dự án Thanh toán cho việc học)

"biến mẫu đơn đăng ký

Công khai fam1 dưới dạng chuỗi

Tên công khai1 dưới dạng chuỗi

Tên đệm công khai1 dưới dạng chuỗi

Nhóm công khai1 dưới dạng chuỗi

Tháng công khai dưới dạng chuỗi

Số tiền công khai dưới dạng chuỗi

Boo công khai dưới dạng chuỗi

Ngày công khai dưới dạng chuỗi

" biến biểu mẫu mẫu tài liệu

Họ công khai Như Chuỗi

Tên công khai dưới dạng chuỗi

Tên đệm công khai dưới dạng chuỗi

Nhóm công khai dưới dạng chuỗi

Công khai tháng_opl dưới dạng chuỗi

Thanh toán công khai_số tiền dưới dạng chuỗi

Tên công khai_tài khoản dưới dạng chuỗi

Ngày công khai_thanh toán dưới dạng chuỗi

Cuốn sách mờ(8) dưới dạng chuỗi

Dim dataMas(8) Dưới dạng chuỗi

Dim i là số nguyên

Sub Print() "thủ tục in biểu mẫu

“Chúng ta nhập thông tin vào các bookmarmas, mảng datamas

book(1) = "họ": dataMas(1) = họ

book(2) = "tên": dataMas(2) = tên

book(3) = "tên đệm": dataMas(3) = tên đệm

book(4) = "nhóm": dataMas(4) = nhóm

book(5) = “tháng_thanh toán”: dataMas(5) = thanh_tháng

book(6) = "Payment_amount": dataMas(6) = Payment_amount

book(7) = “full name_account”: dataMas(7) = full name_account

book(8) = “opt_date”: dataMas(8) = ngày

"điền vào các trường của biên nhận:

ActiveDocument.FormFields(ActiveDocument.Bookmarks(book(i)).Name).Result = dataMas(i)

ActiveDocument.PrintPreview Thực hiện xem trước bản in.

"Để thực sự in một tài liệu, hãy sử dụng phương thức PrintOut của đối tượng Ứng dụng (xem Trợ giúp)

Do sự khác biệt giữa các biến được nhận và gửi để in, chúng tôi sẽ khai báo hai loại biến là Public: biến được nhận bởi phần giao diện của ứng dụng và biến được in dưới dạng mẫu.

Xin lưu ý rằng tất cả dữ liệu ở đây thuộc loại String. Dữ liệu cùng loại như vậy cho phép bạn ghi nó vào các trường biểu mẫu trong một vòng lặp chỉ chứa hai câu lệnh (xem mô tả danh sách).

Tạo mô-đun cho các nút biểu mẫu ứng dụng

Thao tác nút Cấp giấy chứng nhận bao gồm việc đọc thông tin đã nhập vào các trường văn bản của biểu mẫu ứng dụng, chuyển giá trị của chúng sang các biến của biểu mẫu mẫu tài liệu và xuất thêm thông tin vào mẫu tài liệu.

CommandSub riêng tư1_Click()

họ = họ 1

tên = tên1

bảo trợ = tên đệm1

nhóm = nhóm 1

tháng_thanh toán = tháng

Payment_amount = số tiền

name_book = cuốn sách

ngày thanh toán = ngày

Gọi In

Quy trình gán các biến của biểu mẫu ứng dụng các giá trị được nhập vào các trường văn bản của biểu mẫu.

Văn bản phụ riêng tưBox1_change()

fam1 = TextBox1.Value

Văn bản phụ riêng tưBox2_change()

name1 = TextBox2.Value

Văn bản phụ riêng tưBox3_change()

tên đệm1 = TextBox3.Value

Văn bản phụ riêng tưBox4_change()

nhóm1 = TextBox4.Value

Văn bản phụ riêng tưBox5_change()

tháng = TextBox5.Value

Văn bản phụ riêng tưBox6_change()

tổng = TextBox6.Value

Văn bản phụ riêng tưBox7_change()

boo = TextBox7.Value

Văn bản phụ riêng tưBox8_change()

ngày = TextBox8.Value

Biên dịch chương trình và chạy nó để thử nghiệm.

Nhiệm vụ gia cố

Ví dụ 40. Xây dựng hình thức chuyển tiền qua bưu điện nhằm tạo điều kiện thuận lợi cho công việc của nhân viên gắn với việc xử lý các giao dịch chuyển tiền thường xuyên.

Mẫu và biểu mẫu tài liệu đã hoàn thành được hiển thị trong Hình. 90 và 91.


Cơm. 90. Ví dụ về mẫu đơn đặt hàng qua bưu điện đơn giản với các trường văn bản có thể thay đổi (mẫu tài liệu)