Thông báo: Hotrowordpress sẽ tiến hành cập nhật lại toàn bộ plugin-themes hiện có trên blog. Thời gian hỗ trợ cập nhật từ ngày 30.03.2024, nếu cần gấp bản mới nhất vui lòng gửi mail về cho admin để nhận link download ưu tiên!

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

0

Nền tảng lập trình VBA chạy trên hầu hết các sản phẩm Microsoft Office là một trong những công cụ mạnh mẽ nhất mà bất kỳ ai cũng có thể sử dụng để nâng cao khả năng sử dụng các sản phẩm đó.

Hướng dẫn VBA dành 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ổ 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 hay nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 1

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 Trình soạn thảo VBA

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 mình 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 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 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 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ài liệu trình đơn và chọn Tùy chọn từ menu điều hướng bên trái.
  • Bạn sẽ thấy menu Tùy chọn bật lên. Lựa chọn Tuy Biên ruy-băng từ menu điều hướng bên trái.
Hướng dẫn VBA tốt nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 2Hướng dẫn VBA tốt nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 2

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.

  • 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 hay nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 3Hướng dẫn VBA hay nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 3
  • Nếu bạn không thấy Nhà phát triển có sẵn ở bên phải, sau đó thay đổi bên trái Chọn lệnh từ thả xuống đến Tất cả các lệnh. Tìm thấy Nhà phát triển từ danh sách và chọn Thêm>> ở giữa để thêm menu đó vào Ribbon.
  • Lựa chọn OK khi bạn làm xong.
  • 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ển từ menu trên cùng.
  • Sau đó chọn Xem mã từ nhóm Điều khiển trong dải băng để mở cửa sổ soạn thảo VBA.
Hướng dẫn VBA tốt nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 4
  • Thao tác này sẽ mở cửa sổ soạn thảo VBA nơi bạn có thể nhập mã mà bạn sẽ tìm hiểu trong một số phần tiếp theo.
Hướng dẫn VBA tốt nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 5
  • Hãy thử thêm menu Nhà phát triển vào một số ứng dụng Office mà bạn sử dụng hàng ngày. Khi bạn đã thoải mái mở cửa sổ soạn thảo VBA, hãy tiếp tục chuyển sang 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ở 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 hay nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 6

Đ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 đối tượng sổ làm việc hoặc trang tính. Trong Word, bạn có thể thêm mã VBA vào tài liệu. Trong Powerpoint, chỉ 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 đối với các đối tượng đó thông qua mã VBA.

Trước khi đ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 chúng ta 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.

Đặt mã VBA ở đâu

Khi ở trong trình soạn thảo 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 Bảng tínhKích hoạtmã sẽ chạy bất cứ khi nào bảng tính được mở.

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

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 bao gồm khi trang tính thay đổi, khi trang tính bị đóng (vô hiệu hóa), khi tính toán trang tính được chạy, v.v.

Khi bạn thêm mã VBA vào trình chỉnh sửa, hãy luôn đảm bảo đặt mã VBA của bạn vào đố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 IF VBA

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 xét liệu một điều kiện hoặc tập hợp các điều kiện có đúng hay không. Các điều kiện này có thể được nối bằng toán tử AND hoặc OR để 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à chỉ định trạng thái đạt hoặc không đạt cho một ô khác.

Nếu các ô(2, 2) > 75 thì các ô(2, 3) = “Đạt” Các ô khác(2, 3) = “Thất bại”

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

Nếu Ô(2, 2) > 75 Thì _
Ô(2, 3) = “Đạt” Khác _
Ô(2, 3) = “Thất bại”

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 vòng lặp tiếp theo

Câu lệnh IF rất phù hợp cho việc so sánh đơn lẻ, giống như ví dụ ở trên về việc xem xét một ô. 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.

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

Để làm điều này, bạn cần xác định các biến phạm vi và ô, rồi lặp qua chúng. Bạn cũng cần xác định bộ đếm để 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
Làm mờ hàngBộ đếm dưới dạng số nguyên

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

Đặt rng = Phạm vi(“B2:B7”)
hàngBộ đếm = 2

Cuối cùng, bạn có thể tạo vòng lặp FOR để duyệt qua từng ô 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 hay nhất (Dành cho người mới bắt đầu) Bạn sẽ cần hình ảnh 8

Vòng lặp while của 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 vẫn đúng.

Ví dụ: bạn có thể viết vòng lặp FOR tương tự ở 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 ở số 2 và cần kết thúc ở hàng 7 nơi dữ liệu kết thúc. Tuy nhiên, số đếm 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, vì khi biến rowCounter đến cuối dữ liệu (hàng 7), vòng lặp có thể kết thúc.

Vòng lặp Do While và Do Until của VBA

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.

  • Các Trong khi lặp lại kiểm tra xem điều kiện ở đầu vòng lặp có đúng hay không.
  • Các 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.
  • Các Vòng lặp Do-Until kiểm tra xem đ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, dưới dạng 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 việc 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ể ít nhất một lần), thì Do-while hoặc vòng lặp Do-Until là lựa chọn phù hợp.

Câu lệnh chọn trường hợp 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ỉ đạt không đạt. Thay vào đó, bạn muốn chỉ định điểm bằng chữ cái từ A đến F.

Bạn có thể thực hiện việc này bằng 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ảng tính bên dưới.

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

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.

Để lại bình luận

Địa chỉ email của bạn sẽ được chúng tôi bảo mật thông tin.