Computer >> Máy Tính >  >> Phần mềm >> Office

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

Nền tảng lập trình VBA chạy xuyên suốt gần như tất cả các sản phẩm Microsoft Office là một trong những công cụ mạnh mẽ 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 đó.

Hướng dẫn VBA cho người mới bắt đầu này 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 cũng như cách hoạt động của các câu lệnh và vòng lặp VBA cơ bản để bạn có thể bắt đầu sử dụng VBA trong Excel, Word, Powerpoint, Outlook và OneNote.

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

Hướng dẫn VBA này 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 VBA Editor

Trong bất kỳ sản phẩm Office nào đượ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ỉ có sẵn trong Excel, Word, Outlook và Powerpoint. OneNote không cung cấp 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 chiếu 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 việc này trong hướng dẫn VBA nâng cao sắp tới của chúng tôi.

  • Để bật trình đơn Nhà phát triển trong bất kỳ sản phẩm văn phòng nào, hãy chọn Tệp và chọn Tùy chọn từ menu điều hướng bên trái.
  • Bạn sẽ thấy một cửa sổ bật lên của trình đơn Tùy chọn. Chọn Tùy chỉnh ruy-băng từ menu điều hướng bên trái.
Hướng dẫn VBA tốt nhất (cho người mới bắt đầu) mà bạn sẽ cần

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 đang có sẵn hoặc đã được kích hoạt.

  • 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.
Hướng dẫn VBA tốt nhất (cho người mới bắt đầu) mà bạn sẽ cần
  • Nếu bạn không thấy Nhà phát triển khả dụng ở bên phải, sau đó thay đổi bên trái Chọn lệnh từ trình đơn thả xuống đến Tất cả các lệnh . Tìm Nhà phát triển từ danh sách và chọn Thêm>> ở giữa để thêm menu đó vào Ruy-băng.
  • Chọn OK khi bạn làm xong.
  • Sau khi trình đơn Nhà phát triển hoạt động, 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ển từ 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 chỉnh sửa VBA.
Hướng dẫn VBA tốt nhất (cho người mới bắt đầu) mà bạn sẽ cần
  • Thao tác này sẽ mở ra cửa sổ trình chỉnh sửa VBA, nơi bạn có thể nhập mã sẽ học trong vài phần tiếp theo.
Hướng dẫn VBA tốt nhất (cho người mới bắt đầu) mà bạn sẽ cần
  • Thử thêm menu Nhà phát triển vào một vài ứng dụng Office mà bạn sử dụng hàng ngày. Sau khi bạn thấy thoải mái khi mở cửa sổ trình chỉnh sửa 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 chỉnh sửa VBA mở ra, 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 Office khác.

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

Điều này là do các đối tượng có sẵn nơi bạn có thể đặt mã VBA phụ thuộc vào những đố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, đừng ngạc nhiên bởi các menu khác nhau. Cấu trúc và cú pháp của mã VBA 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 trên các đối tượng đó thông qua mã VBA.

Trước khi chúng ta đ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 xem cấu trúc và cú pháp VBA phổ biến nhất mà bạn có thể sử dụng khi viết mã VBA.

Nơi đặt mã VBA

Khi ở 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à thời điểm bạn muốn mã chạy.

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

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

Các hành động khác trên trang tính mà bạn có thể sử dụng để kích hoạt mã VBA của mình bao gồm khi trang tính thay đổi, khi trang tính bị đóng (hủy kích hoạ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 trong trình chỉnh sửa, hãy luôn đảm bảo đặ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ã đó.

Câu lệnh VBA IF

Câu lệnh IF 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 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 toán tử VÀ hoặc HOẶC để liên kết chúng với nhau.

Một ví dụ là kiểm tra xem điểm trong bảng tính cao hơn hay thấp hơn điểm “đạt” và gán trạng thái đạt hoặc không đạt cho một ô khác.

If Cells (2, 2)> 75 then Cells (2, 3) =“Pass” Else Cells (2, 3) =“Fail”

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 ký hiệu “_” vào cuối dòng.

Nếu ô (2, 2)> 75 thì _
Ô (2, 3) =“Vượt qua” Khác _
Ô (2, 3) =“Không đạt”

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

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

Câu lệnh IF rất phù hợp cho các phép so sánh đơn lẻ, như ví dụ ở trên về việc xem xét một ô đơn lẻ. Nhưng điều gì sẽ xảy ra nếu bạn muốn lặp qua toàn bộ 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 cần một vòng lặp FOR.

Để làm điều này, bạn cần sử dụng độ dài của một dải ô và lặp lại độ dài đó theo số hàng chứa dữ liệu.

Để làm điều này, bạn cần xác định phạm vi và biến ô, và lặp qua chúng. Bạn cũng sẽ cần xác định bộ đếm để có thể xuất kết quả ra 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.

Giảm độ sáng theo Phạm vi, ô Như Phạm vi
Dim rowCounter dưới dạng Số nguyên

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

Đặt rng =Range (“B2:B7”)
rowCounter =2

Cuối cùng, bạn có thể tạo vòng lặp FOR của mình để đi 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 tập lệnh VBA này được chạy, bạn sẽ thấy kết quả trong bảng tính thực tế.

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

Vòng lặp trong khi VBA

Vòng lặp While cũng lặp qua một loạt 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à đ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, dưới dạng vòng lặp WHILE, bằng cách sử dụng biến rowCounter 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 ý: rng.Count + 2 giới hạn kết thúc là bắt buộc vì bộ đếm hàng bắt đầu ở 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 LỚN hơn bộ đếm - vì vậy giá trị rowCounter 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:

Trong khi rowCounter <=rng.Count + 1

Bạn chỉ có thể tăng số lượng phạm vi (6) lên 1, bởi vì khi biến rowCounter đế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

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

  • Vòng lặp trong khi kiểm tra xem một điều kiện có đúng ở đầu vòng lặp hay không.
  • Vòng lặp Do-While kiểm tra xem một điều kiện có đúng hay không sau khi thực hiện các câu lệnh trong vòng lặp.
  • Vòng lặp Do-Until kiểm tra xem một điều kiện có còn sai hay 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 vòng lặp While ở trên như sau, như một 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 đảm bảo so sánh logic 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ể điều gì ít nhất một lần), thì Do-While hoặc vòng lặp Do-Until là tùy chọn phù hợp.

Tuyên bố trường hợp chọn VBA

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

Với ví dụ trên, giả sử bạn muốn có một phương pháp chấm điểm không chỉ vượt qua thất bại. Thay vào đó, bạn muốn chỉ định loại chữ cái 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 trông giống như bên dưới.

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

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.