Hướng dẫn viết code vba trong excel năm 2024

Trong bài viết này, Blog Học Excel Online sẽ hướng dẫn các bạn từng bước cách thêm mã VBA [Visual Basic for Applications code] vào bảng tính Excel và chạy chương trình này để thực hiện những nhiệm vụ trên trang tính một cách đơn giản nhất giúp cho các bạn có thể học Excel tại nhà, tự học VBA hiệu quả nhất.

Chèn mã VBA vào bảng tính Excel:

Trong ví dụ này, chúng ta sẽ sử dụng macro VBA để xóa cách dòng từ trang tính hiện tại.

  1. Mở bảng tính trong Excel.
  2. Nhấn Alt + F11 để mở VBA.

  1. Nhấp phải vào tên bảng tính trong bảng Project-VBAProject [nằm ở góc trên bên trái của cửa sổ chỉnh sửa] và chọn Insert > Module từ danh sách tùy chọn.

  1. Sao chép mã VBA [từ trang web] và dán nó vào bên phải bảng chỉnh sửa VBA [cửa sổ Module1]

Chú ý. Cách tăng tốc chạy mã macro

Nếu mã VBA Macro không chứa những dòng sau đây trong phần mở đầu:

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Xem thêm: Tài liệu tổng hợp học Excel 2010
  1. Sau đó thêm những dòng sau để mã macro của bạn hoạt động nhanh hơn [xem hình minh họa trên]

Sau phần mở đầu của mã lập trình, tất cả những dòng mã sau đều bắt đầu bằng Dim [nếu không có dòng Dim, hãy thêm chúng vào ngay bên phải dòng Sub line]:

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Với những dòng code trước End Sub:

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

Xem thêm: Bắt đầu với Excel Macros và lập trình VBA

Những dòng này, như tên của chúng, sẽ tắt màn hình để làm mới và tính toán lại các công thức trong bảng tính trước khi chạy mã Macro.

Sau khi chạy chương trình, mọi thứ sẽ được bật lại. Kết quả là, tốc độ chạy mã sẽ tăng 10% tới 500%.

Lưu bảng tính của bạn dưới tên “Excel macro-enabled workbook”. Nhấn Ctrl + S, sau đó nhấp vào nút No trong hộp thoại cảnh báo “The following features cannot be saved in macro-free workbook”.

Hộp thoại Save As sẽ mở ra. Chọn “Excel macro-enabled workbook” từ danh sách tùy chọn Save as type và nhấn nút Save.

Nhấn Alt + Q để đóng cửa sổ sửa đổi và trở lại với bảng tính của bạn.

Cách chạy mã VBA macros trong Excel:

Khi bạn muốn chạy mã VBA mà bạn vừa thêm vào trong phần trên, nhấn Alt + F8 để mở hộp thoại Macro.

Sau đó chọn macro bạn muốn từ danh sách Macro Name: và nhấp vào nút Run.

Hy vọng rằng qua bài viết này bạn đã biết cách để có thể bắt đầu tự học VBA và sử dụng VBA trong công việc của mình.

VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như word, power point, outlook… giúp biến file excel của bạn trở thành 1 phần mềm chuyên nghiệp…

Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại khoá học VBA

Mã macro Excel có thể được sử dụng để tự động hóa các tác vụ Excel thông thường mà bạn không cần phải thực hiện chúng theo cách thủ công. Điều này giúp tiết kiệm thời gian và đưa ra kết quả chính xác và đáng tin cậy hơn.

Gitiho sẽ giới thiệu cho bạn thư viện mã VBA - một danh sách các mã VBA hữu ích cho Excel mà bạn có thể bắt đầu sử dụng ngay lập tức. Những mã này cực kỳ hữu ích cho những người mới bắt đầu chưa sử dụng VBA Excel trước đây.

XEM NHANH BÀI VIẾT

Mã macro VBA là gì?

Mã macro đề cập đến mã VBA [Visual Basic for Applications] cho macro.

Bạn có thể tạo macro trong Excel bằng cách ghi lại các bước bạn muốn nó thực hiện hoặc bằng cách tự viết VBA. Việc tự viết mã VBA hoặc mã macro này cho phép bạn kiểm soát tốt với các macro của mình. Mã VBA có thể đơn giản là thực hiện một bước định dạng cơ bản hoặc nó có thể làm điều gì đó lớn hơn chẳng hạn như xuất tất cả các trang tính của sổ làm việc dưới dạng PDF riêng biệt.

Cách sử dụng mã macro VBA

Với thư viện mã mà Gitiho cung cấp cho bạn trong bài viết này, bạn chỉ cần sao chép và dán chúng khi muốn sử dụng. Rất tiện lợi và đơn giản phải không. Tuy nhiên, bạn cần đảm bảo rằng bạn dán chúng vào đúng vị trí.

Thực hiện theo các bươc sau để bắt đầu viết mã VBA:

Bước 1: Bấm Developer > Visual Basic hoặc nhấp tổ hợp phím Alt + F11

Trình soạn thảo Visual Basic sẽ mở ra và cửa sổ Project Explorer được hiển thị ở bên trái. Nó liệt kê các sổ làm việc đang mở và các dự án khác.

Bước 2: Bấm vào cửa sổ làm việc mà bạn muốn chèn mã VBA và chọn Insert > Module.

Bước 3: Sao chép và dán mã mà bạn cần từ bài viết này vào cửa sổ mã.

Bước 4: Nhấp vào Developer > Macros. Chọn macro từ danh sách và nhấp vào Run.

Trong thư viện mã VBA, có một danh mục tên là Events - Sự kiện . Các macro này sẽ không được lưu trữ trong các mô-đun, điều này sẽ được giải thích khi chúng ta tìm hiểu mã. Nhưng phần lớn các macro trong danh sách này được lưu trữ trong các mô-đun và thực hiện theo quy trình được giải thích ở trên.

Xem thêm: Module trong VBA là gì? Các thao tác cơ bản để làm việc với module

Thêm nút để kích hoạt macro VBA

Mặc dù có thể chạy macro từ cửa sổ macro nhưng việc gán macro cho một nút mà bạn có thể nhấp vào ngay trên thanh công cụ sẽ giúp bạn chạy macro dễ dàng hơn.

Bạn có thể chèn nút này trên thanh công cụ truy nhập nhanh - Quick Access Toolbar

Cách thêm một nút vào thanh công cụ truy nhập nhanh - Quick Access Toolbar để chạy macro của bạn như sau:

Bước 1: Nhấp vào mũi tên Customize Quick Access Toolbar và nhấp vào More Commands.

Bước 2: Bấm vào mũi tên trên danh sách Choose commands from và chọn macro bạn muốn và nhấp vào Add.

Bước 3: Nhấp vào nút Modify để thay đổi hình ảnh và tên hiển thị của nút và chọn OK.

Bây giờ nút macro sẽ xuất hiện trên thanh công cụ truy cập nhanh và sẽ chạy macro của bạn khi bạn nhấp vào [tên hiển thị được hiển thị khi bạn di chuột qua nút]:

Xem thêm: Hướng dẫn sử dụng VBA để sao chép dữ liệu từ Excel sang Word

Thư viện mã VBA trong Excel

Các ví dụ về mã macro trong danh sách này đã được chia thành các danh mục để giúp bạn dễ dàng tìm thấy những ví dụ mà bạn muốn sử dụng.

Mã VBA cho các tác vụ Excel phổ biến

Các mã VBA này sẽ thực hiện các tác vụ Excel phổ biến một cách nhanh chóng.

Tự động điều chỉnh chiều rộng cột

Mã này sẽ tự động điều chỉnh phù hợp với chiều rộng cột cho tất cả các cột của trang tính.

Sub AutofitAllColumns[]  
Cells.EntireColumn.AutoFit  
End Sub

Mã này sẽ tự động điều chỉnh phù hợp với độ rộng của các cột cụ thể trên trang tính. Trong ví dụ này, đó là cột D và F.

Sub AutofitSpecificColumns[]  
Range["D:D,F:F"].EntireColumn.AutoFit  
End Sub

Sao chép và dán

Sao chép và dán là một trong những thao tác phổ biến nhất trong Excel. Nó có thể được viết chỉ với một dòng mã VBA.

Ví dụ: Đoạn mã sau sao chép phạm vi A1: B6 vào A1 của một trang tính khác.

Sub CopyAndPaste[]  
Range["A1:B6"].Copy Worksheets["Sheet2"].Range["A1"]  
End Sub

Cuối cùng, nếu bạn muốn sử dụng một số tùy chọn dán đặc biệt có sẵn trong Excel bằng VBA thì hãy tách thao tác sao chép và dán thành hai câu lệnh.

Mã này sử dụng phương thức PasteSpecial [chỉ dán các giá trị].

Sub CopyAndPasteValues[]  
Range["A1:B6"].Copy  
Worksheets["Sheet2"].Range["A1"].PasteSpecial Paste:=xlPasteValues   
End Sub

Xóa tất cả các siêu liên kết trên một trang tính

Đoạn mã macro sau sẽ tự động xóa tất cả các liên kết trên một trang tính.

Sub ClearHyperlinks[]  
ActiveSheet.Hyperlinks.Delete  
End Sub

Định dạng ô bằng công thức

Định dạng các ô có chứa công thức giúp chúng dễ dàng xác định trên trang tính. Mã macro này sẽ định dạng các ô công thức và tô màu vàng cho chúng [ColorIndex = 6].

Chúng ta khai báo một biến phạm vi có tên rng và sử dụng nó để lặp qua từng ô có chứa công thức như sau:

Sub FormatFormulas[]   
Dim rng As Range   
For Each rng In Cells.SpecialCells[xlCellTypeFormulas]   
rng.Interior.ColorIndex = 6   
Next rng   
End Sub

Chuyển đổi công thức thành giá trị

Một thao tác phổ biến khác với công thức là chuyển đổi chúng thành giá trị. Mã VBA này sẽ thực hiện việc này cho tất cả các công thức trên trang tính.

Sub ConvertFormulastoValues[]   
Dim rng As Range   
For Each rng In Cells.SpecialCells[xlCellTypeFormulas]   
rng.Formula = rng.Value   
Next rng   
End Sub

Xem thêm: Hướng dẫn cách thêm các ghi chú khi viết code VBA dễ hiểu nhất

Mã VBA cho trang tính

Các mã này sẽ thực hiện một số tác vụ trên trang tính điển hình.

Hiện tất cả các cột

Đôi khi bạn cần ẩn các cột để giảm sự lộn xộn của trang tính và bảo vệ dữ liệu. Mã macro này sẽ hiện tất cả các cột đã ẩn chỉ với một nút bấm.

Sub UnhideAllColumns[]  
Columns.EntireColumn.Hidden = False   
End Sub

Bảo vệ trang tính

Đoạn mã sau sẽ bảo vệ trang tính đang hoạt động. Nếu bạn biết rõ về bảo vệ trang tính, bạn sẽ biết rằng có nhiều hành động khác nhau mà bạn có thể cho phép hoặc ngăn chặn. Và chúng tôi có thể làm điều này với mã VBA như sau:

Sub ProtectWS[]  
ActiveSheet.Protect   
End Sub

Trong trường hợp bạn muốn thực hiện điều này để chỉ định mật khẩu hoặc chỉ định các hành động cố định được phép thì hãy theo dõi mã VBA dưới đây.

Mã macro này chỉ định mật khẩu Excel và chỉ cho phép chèn các hàng.

Sub ProtectWS[]   
ActiveSheet.Protect Password:=”Excel”, AllowInsertingRows:=True  
End Sub

Một lý do phổ biến để bảo vệ trang tính là để lưu các công thức của bạn và tránh mất các công thức "biến mất" theo bất kỳ cách nào. Mã này sẽ chỉ bảo vệ các ô trên trang tính có chứa công thức.

Sub AutofitSpecificColumns[]  
Range["D:D,F:F"].EntireColumn.AutoFit  
End Sub

0

Lặp lại tất cả các trang tính của một file Excel

Thật đơn giản để thiết lập một vòng lặp để thực hiện một hành động đối với tất cả các trang tính của file làm việc.

Trong ví dụ này, mình sẽ thực hiện bảo vệ tất cả các trang tính. Thay thế dòng ws.Protect bằng các hành động khác mà bạn mong muốn.

Lưu ý: Sử dụng biến ws khi tham chiếu trang tính.

Sub AutofitSpecificColumns[]  
Range["D:D,F:F"].EntireColumn.AutoFit  
End Sub

1

Xem thêm: Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Kết luận

Gitiho hy vọng bài viết trên đã giúp bạn hiểu thêm về mã VBA cũng như cách viết mã VBA cho các công việc phổ biến trên Excel. Nếu bạn có bất kỳ câu hỏi nào liên quan đến bài viết này hoặc về bất kỳ chủ đề VBA nào khác, hãy cho chúng mình biết trong phần bình luận bên dưới. Và đừng quên theo dõi chúng mình để xem thêm các bài viết bổ ích khác nhé!

Chủ Đề