Hướng dẫn VBA tốt nhất (Dành cho người mới bắt đầu) Bạn sẽ cần


Nền tảng Lập trình VBA chạy trên hầu hết các sản phẩm của Microsoft Office là một trong những công cụ mạnh nhất mà mọi người có thể sử dụng để nâng cao việc sử dụng các sản phẩm đó của họ.

Hướng dẫn VBA này cho người mới bắt đầu sẽ chỉ cho bạn cách thêm menu Nhà phát triển vào ứng dụng Office của bạn, cách vào cửa sổ trình soạn thảo VBA và cách các câu lệnh và vòng lặp VBA cơ bản hoạt động để bạn có thể bắt đầu sử dụng VBA trong Excel, Word, Powerpoint, Outlook và OneNote .

Điều này Hướng dẫn VBA sử dụng phiên bản mới nhất của các sản phẩm Microsoft Office. Nếu bạn có phiên bản cũ hơn, bạn có thể thấy một số khác biệt nhỏ so với ảnh chụp màn hình.

Cách bật và sử dụng Trình chỉnh sửa VBA

Trong bất kỳ Văn phòng nào các sản phẩm được sử dụng trong hướng dẫn này, bạn có thể nhận thấy rằng bạn không có menu Nhà phát triển được tham chiếu. Menu nhà phát triển chỉ khả dụng trong Excel, Word, Outlook và Powerpoint. OneNote không cung cấp một công cụ để chỉnh sửa mã VBA từ bên trong ứng dụng, nhưng bạn vẫn có thể tham khảo API OneNote để tương tác với OneNote từ các chương trình Office khác.

Bạn sẽ tìm hiểu cách thực hiện điều này trong hướng dẫn VBA nâng cao sắp tới của chúng tôi.

  • Để bật menu Nhà phát triển trong bất kỳ sản phẩm văn phòng nào, hãy chọn Tệpvà chọn Tùy chọntừ menu điều hướng bên trái.
  • Bạn sẽ thấy một menu Tùy chọn bật lên. Chọn Tùy chỉnh ruy băngtừ menu điều hướng bên trái.
  • Danh sách bên trái bao gồm tất cả các menu và lệnh menu có sẵn trong ứng dụng Office đó. Danh sách bên phải là những danh sách hiện có sẵn hoặc được kích hoạt.

    In_content_1 all: [300x250] / dfp: [640x360]->
    • Bạn sẽ thấy Nhà phát triển trong danh sách bên phải, nhưng nó sẽ không được kích hoạt. Chỉ cần chọn hộp kiểm để kích hoạt menu Nhà phát triển.
      • Nếu bạn không thấy Nhà phát triểncó sẵn ở bên phải, sau đó thay đổi bên trái Chọn lệnhtừ thả xuống thành Tất cả các lệnh. Tìm Nhà phát triểntừ danh sách và chọn Thêm >>ở giữa để thêm menu đó vào Dải băng.
      • Chọn OKkhi bạn hoàn thành.
      • Khi menu Nhà phát triển được kích hoạt, bạn có thể quay lại cửa sổ ứng dụng chính của mình và chọn Nhà phát triểntừ menu trên cùng.
      • Sau đó chọn Xem mãtừ nhóm Điều khiển trong ruy-băng để mở cửa sổ trình soạn thảo VBA.
        • Điều này sẽ mở cửa sổ trình soạn thảo VBA nơi bạn có thể nhập mã bạn sẽ tìm hiểu trong một số phần tiếp theo.
          • Hãy thử thêm menu Nhà phát triển vào một vài ứng dụng Office bạn sử dụng hàng ngày . Khi bạn cảm thấy thoải mái khi mở cửa sổ trình soạn thảo VBA, hãy tiếp tục đến phần tiếp theo của hướng dẫn này.
          • Mẹo lập trình VBA chung cho người mới bắt đầu

            Bạn sẽ nhận thấy khi trình soạn thảo VBA mở, các tùy chọn điều hướng trong bảng điều khiển bên trái trông khác với ứng dụng Office này với ứng dụng khác.

            Điều này là do các đối tượng khả dụng nơi bạn có thể đặt mã VBA phụ thuộc vào các đối tượng có trong ứng dụng. Ví dụ: trong Excel, bạn có thể thêm mã VBA vào sổ làm việc hoặc các đối tượng trang tính. Trong Word, bạn có thể thêm mã VBA vào tài liệu. Trong Powerpoint, chỉ với các mô-đun.

            Vì vậy, don lồng bị bất ngờ bởi các menu khác nhau. Cấu trúc và cú pháp của mã VBA là giống nhau trên tất cả các ứng dụng. Sự khác biệt duy nhất là các đối tượng bạn có thể tham chiếu và các hành động bạn có thể thực hiện đối với các đối tượng đó thông qua mã VBA.

            Trước khi chúng tôi đi sâu vào các đối tượng và hành động khác nhau mà bạn có thể thực hiện thông qua mã VBA, trước tiên hãy nhìn vào cấu trúc và cú pháp VBA phổ biến nhất bạn có thể sử dụng khi viết mã VBA.

            Nơi đặt mã VBA

            Khi bạn ở trong Trình chỉnh sửa VBA, bạn cần sử dụng hai hộp thả xuống ở đầu cửa sổ chỉnh sửa để chọn đối tượng bạn muốn đính kèm mã và khi nào bạn muốn mã chạy.

            Ví dụ: trong Excel, nếu bạn chọn Bảng tínhKích hoạt, mã sẽ chạy bất cứ khi nào bảng tính được mở.

            Bảng tính khác các hành động bạn có thể sử dụng để kích hoạt mã VBA của mình bao gồm khi bảng tính thay đổi, khi đóng (tắt), khi tính toán trang tính được chạy và hơn thế nữa.

            Khi bạn thêm mã VBA vào trình chỉnh sửa, hãy luôn thực hiện chắc chắn đặt mã VBA của bạn trên đối tượng và sử dụng đúng hành động mà bạn muốn sử dụng để kích hoạt mã đó.

            Báo cáo IF của VBA

            Một IF câu lệnh hoạt động trong VBA giống như nó hoạt động trong bất kỳ ngôn ngữ lập trình nào khác.

            Phần đầu tiên của câu lệnh IF xem xét một điều kiện hoặc tập hợp các điều kiện là đúng. Các điều kiện này có thể được kết hợp bởi một toán tử AND hoặc OR để liên kết chúng lại với nhau.

            Một ví dụ sẽ là kiểm tra xem một lớp trong bảng tính có ở trên hoặc dưới một lớp vượt qua và chuyển giao hoặc không thể chuyển sang trạng thái của một ô khác.

            Nếu các ô (2, 2)>75 Sau đó các ô (2, 3) = Các tế bào của Pass Pass Else (2, 3) = Giảm thất bại

            Nếu bạn không muốn toàn bộ câu lệnh trên một dòng, bạn có thể chia nó thành nhiều dòng bằng cách thêm biểu tượng của _ _ ở cuối dòng.

            Nếu các ô (2, 2)>75 thì _
            Các ô (2, 3) = Thẻ Pass Pass Else _
            Các ô (2, 3) = Không thành công

            Sử dụng kỹ thuật này thường có thể giúp mã dễ đọc và gỡ lỗi hơn.

            VBA cho các vòng lặp tiếp theo

            Các câu lệnh IF là tuyệt vời cho các so sánh đơn lẻ, giống như ví dụ ở trên về việc xem xét một ô duy nhất. Nhưng điều gì sẽ xảy ra nếu bạn muốn lặp qua toàn bộ một phạm vi ô và thực hiện cùng một câu lệnh IF trên mỗi ô?

            Trong trường hợp này, bạn sẽ cần một vòng lặp FOR.

            Để thực hiện việc này, bạn cần sử dụng độ dài của phạm vi và lặp qua độ dài đó theo số lượng hàng có chứa dữ liệu.

            Để thực hiện việc này, bạn cần để xác định phạm vi và các biến ô và lặp qua chúng. Bạn cũng cần xác định một bộ đếm để bạn có thể xuất kết quả sang hàng thích hợp. Vì vậy, mã VBA của bạn trước tiên sẽ có dòng này.

            Dim rng As Range, cell As Range
            Dim rowCount as Integer

            Xác định kích thước phạm vi như sau.

            Đặt rng = Phạm vi (Số B2: B7))
            rowCorer = 2

            Cuối cùng, bạn có thể tạo vòng lặp FOR của bạn để bước qua mọi ô trong phạm vi đó và thực hiện so sánh.

            For Each cell In rng
            If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell

            Khi Kịch bản VBA này chạy, bạn sẽ thấy kết quả trong bảng tính thực tế.

            VBA While Loops

            A While Loop cũng lặp qua một loạt các câu lệnh, giống như vòng lặp FOR, nhưng điều kiện của vòng lặp tiếp tục là một điều kiện còn lại đúng.

            Ví dụ: bạn có thể viết cùng một vòng lặp FOR ở trên, như một vòng lặp WHILE, chỉ bằng cách sử dụng biến rowCorer như sau.

            While rowCounter < rng.Count + 2
            If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

            Lưu ý: giới hạn kết thúc rng.Count + 2là bắt buộc vì bộ đếm hàng bắt đầu từ 2 và cần kết thúc ở hàng 7 nơi dữ liệu kết thúc. Tuy nhiên, số lượng của phạm vi (B2: B7) chỉ là 6 và vòng lặp While sẽ chỉ kết thúc khi bộ đếm TUYỆT VỜI hơn bộ đếm - vì vậy giá trị hàng cuối cùng cần phải là 8 (hoặc rng.Count + 2).

            Bạn cũng có thể thiết lập vòng lặp While như sau:

            While rowCount <= rng.Count + 1

            Bạn có thể chỉ tăng số lượng phạm vi (6) lên 1, bởi vì một khi biến rowCorer đạt đến cuối dữ liệu (hàng 7), vòng lặp có thể kết thúc.

            VBA Do While và Do Until Loops

            Do While và Do Until vòng lặp gần giống với vòng lặp While, nhưng hoạt động hơi khác nhau.

            • Vòng lặp Whilekiểm tra xem một điều kiện là đúng ở đầu vòng lặp.
            • Vòng lặp Do-Whilekiểm tra xem một điều kiện có đúng không sau khi thực hiện các câu lệnh trong vòng lặp.
            • Vòng lặp Do-Untilkiểm tra xem một điều kiện có còn sai không sau khi thực hiện vòng lặp.
            • Trong trường hợp này, bạn sẽ viết lại t he Vòng lặp phía trên như sau, như vòng lặp Do-While.

              Do
              If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

              Trong trường hợp này logic không thay đổi nhiều, nhưng nếu bạn muốn chắc chắn logic so sánh diễn ra sau khi tất cả các câu lệnh được chạy (cho phép tất cả chúng chạy bất kể ít nhất là một lần), sau đó vòng lặp Do-While hoặc Do-Until là tùy chọn phù hợp.

              VBA Chọn Báo cáo trường hợp

              Loại câu lệnh logic cuối cùng bạn sẽ cần hiểu để bắt đầu cấu trúc mã VBA của mình là Chọn câu lệnh tình huống.

              Cho ví dụ ở trên, giả sử bạn muốn có một phương pháp phân loại không vượt qua thất bại. Thay vào đó, bạn muốn chỉ định một lớp chữ từ A đến F.

              Bạn có thể làm điều này với câu lệnh Chọn trường hợp sau:

              For Each cell In rng
              Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell

              Bảng tính kết quả sau khi tập lệnh VBA này chạy giống như tập lệnh bên dưới.

              Bây giờ bạn đã biết mọi thứ bạn cần biết để bắt đầu sử dụng VBA trong các ứng dụng Microsoft Office của mình.

              Hướng dẫn tạo Form nhập dữ liệu trong Excel (Không cần VBA)

              bài viết liên quan:


              29.01.2020