NTM Solutions

Hiển thị các bài đăng có nhãn VBA Macro. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn VBA Macro. Hiển thị tất cả bài đăng
Thứ Bảy, 11 tháng 12, 2021

VBA Macro trong Microsoft Word

 Mến chào các bạn!!!


Chủ đề VBA Macro trong Microsoft Excel đã có nhiều người viết (phần lớn là dành cho bên kế toán)


Hôm nay, mình sẽ viết về chủ đề VBA Macro trong Microsoft Word, vì hầu như trên mạng ít có bài viết nào Tiếng Việt về chủ đề này.


01 - Cách tạo 01 macro trong Microsoft Word

+ Ta vào menu View-Macros-Record Macro


Sau đó Word sẽ hiện ra cửa sổ con như sau:

Thứ Hai, 9 tháng 9, 2019

Kiểm tra ISO số CONTAINER

Quay về mục lục VBA Macro

http://bit.ly/checkcontainer


Quy tắc chuẩn ISO của số CONTAINER


Ví dụ số Container : TGHU1234567

 01 số container gồm 02 phần:
  • Phần chữ: có 04 ký tự (chữ cái thứ 04 thường là chữ U)
  • Phần số: gồm 07 chữ số nguyên dương (trong đó số cuối cùng là check digit - số dùng để kiểm tra)
Ta sẽ dựa vào 10 ký tự đầu của số Container(TGHU123456) để tính ra số check digit và so sánh với số cuối cùng (số 7 trong ví dụ)
02 số này trùng nhau -> số Container này hợp lệ ISO

Quy tắc tìm số check digit như sau:
Thứ Tư, 21 tháng 3, 2018

VBA Macro - Bài 16 - Đối tượng User Form


Quay về mục lục VBA Macro


Các bạn tạo 01 file .xlsm (Macro Enabled)
Tạo một nút bấm Form Control để gọi UserForm khi bấm vào-> Menu Developer -> Insert -> Chọn Button, vẽ ra màn hình.

Nhấp phải chuột vào đối tượng -> chọn Assign Macro và nhập dòng lệnh sau:
UserForm1.Show
Thứ Hai, 26 tháng 2, 2018

VBA Macro - Bài 15 - Đối tượng ActiveX


Quay về mục lục VBA Macro


1.       Form Control
a.       Đặc điểm:
·   Ít đối tượng
·   Không có properties riêng
·   Không mở rộng được
·   Chỉnh sửa bằng chuột phải
·   Viết mã cho đối tượng bằng các gán macro (assign macro)
b.      Cách tạo Form Control: Developer->Insert-> Chọn đối tượng vẽ ra màn hình

VBA Macro - Bài 14 - Đối tượng Application


Quay về mục lục VBA Macro


1.       Worksheet Function
Để truy cập các hàm tính toán trong worksheet ta dùng cú pháp sau:
Application.WorksheetFunction.Tenham(tham số)
Chú ý: trong tham số có giá trị tham chiếu đến các ô thì phải dùng Range(“địa chỉ tham chiếu”)
Ví dụ:
Dim tong As Integer
tong = Application.WorksheetFunction.Sum(Range("A1:A5"))
Range(“A6”).Value = tong
Hoặc có thể viết tắt lại như sau:
Range("A6").Value = "=Sum(A1:A5)"
Lúc này, công thức hàm sẽ được điền vào ô A6 như hình vẽ (khác với cách trên chỉ điền giá trị sau tính toán)

VBA Macro - Bài 13 - Function vs Sub


Quay về mục lục VBA Macro


1.       Function
Nếu bạn muốn 01 đoạn mã trả về 01 giá trị sau khi thực thi => dùng Function(hàm)
Cách tạo hàm trong VBA:
Bước 1: Menu (VBA) Insert =>Module

Bước 2: Trong cửa sổ module(nhấp đôi chuột vào Module1) ta khai báo hàm Function
Ví dụ:

VBA Macro - Bài 12 - Mảng


Quay về mục lục VBA Macro


1.    Mảng 01 chiều
Ví dụ:
Dim sinhvien(1 To 5) As String
sinhvien(1) = "Tí"
sinhvien(2) = "Tèo"
sinhvien(3) = "Tô"
sinhvien(4) = "Tun"
sinhvien(5) = "Tôp"
MsgBox "Xin chào " & sinhvien(4)
Ví dụ trên khai báo mảng sinh viên có 05 phần tử và lần lượt gán giá trị từng phần tử.Cuối cùng xuất ra màn hình phần tử thứ 4.
2.       Mảng 02 chiều
Dim sinhvien(1 To 5, 1 To 2) As String
Dim i, j As Integer
For i = 1 To 5
    For j = 1 To 2
        sinhvien(i, j) = Cells(i, j).Value
    Next j
Next i
MsgBox "Xin chào " & sinhvien(4, 1) & " hoc lop: " & sinhvien(4, 2)

Chủ Nhật, 25 tháng 2, 2018

VBA Macro - Bài 11 - Xử lý sự kiện


Quay về mục lục VBA Macro


1.    Sự kiện mở Workbook
·         Sự kiện này diễn ra khi ta mở Workbook.
·         Bấm đôi chuột vào chữ ThisWorkBook trong cửa sổ VBA.
·         Trong cửa sổ code chọn trong 02 listbox là Workbook và Open.


·         Lúc này xuất hiện 01 Sub tên là: Workbook_Open() => Gõ vào Sub này dòng lệnh:
·         Msgbox “Xin chào lophocvitinh.COM!!”
·         Ngoài ra còn các sự kiện khác liên quan đến Workbook các bạn tự tìm hiểu nhé.
Thứ Hai, 11 tháng 9, 2017

Add-in đọc số Tiếng Việt

Quay về mục lục VBA Macro

'=====================
'Nguồn: Sưu tầm

Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
  DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
  If conso < 0 Then dau = "aâm " Else dau = ""
  conso = Application.WorksheetFunction.Round(Abs(conso), 0)
  conso = " " & conso
  conso = Replace(conso, ",", "", 1)
  vt = InStr(1, conso, "E")
  If vt > 0 Then
    sonhan = Val(Mid(conso, vt + 1))
    conso = Trim(Mid(conso, 2, vt - 2))
    conso = conso & String(sonhan - Len(conso) + 1, "0")
  End If
  conso = Trim(conso)
  sochuso = Len(conso) Mod 9
  If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
  docso = ""
  i = 1
  lop = 1
  Do
    n1 = Mid(conso, i, 1)
    n2 = Mid(conso, i + 1, 1)
    n3 = Mid(conso, i + 2, 1)
    baso = Mid(conso, i, 3)
    i = i + 3
    If n1 & n2 & n3 = "000" Then
      If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
    Else
      If n1 = 0 Then
        If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
      Else
        s1 = s09(n1) & " traêm"
      End If
      If n2 = 0 Then
        If s1 = "" Or n3 = 0 Then
          s2 = ""
        Else
          s2 = " linh"
        End If
      Else
        If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
      End If
      If n3 = 1 Then
        If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
      ElseIf n3 = 5 And n2 <> 0 Then
        s3 = " laêm"
      Else
        s3 = s09(n3)
      End If
      If i > Len(conso) Then
        s123 = s1 & s2 & s3
      Else
        s123 = s1 & s2 & s3 & lop3(lop)
      End If
    End If
    lop = lop + 1
    If lop > 3 Then lop = 1
    docso = docso & s123
    If i > Len(conso) Then Exit Do
  Loop
  If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
Else
  DocSoVni = conso
End If
End Function
Thứ Hai, 24 tháng 7, 2017

VBA Macro - Bài 10 - Xử lý ngày giờ


Quay về mục lục VBA Macro


Trong bài này chúng ta sẽ học 01 số hàm xử lý ngày giờ
1.       Hàm Now
Hiện ngày giờ hiện tại.
Dim t As String
t = Now
MsgBox t
2.       Hàm Year
Tách năm trong chuỗi ngày
Dim t As String
t = Year(Now)
MsgBox t
3.       Hàm Month
Tách tháng trong chuỗi ngày
Dim t As String
t = Month(Now)
MsgBox t
4.       Hàm Day
Tách ngày trong chuỗi ngày
Dim t As String
t = Day(Now)
MsgBox t
Thứ Sáu, 21 tháng 7, 2017

VBA Macro - Bài 09 - Xử lý chuỗi - số

Quay về mục lục VBA Macro

1.       Xử lý chuỗi
a.       Nối chuỗi
Trong VBA ta nối chuỗi bằng dấu &
Ví dụ 1: Msgbox “Xin chào “ & “ lophocvitinh.COM!!”
, hoặc 02 biến kiểu String
Ví dụ 2:
Dim s1,s2 As String
s1 = “Tom”
s2 = “ và Jerry.”
Msgbox s1 & s2
b.      Cắt trái
Left(chuỗi,số ký tự cần cắt)
Ví dụ:
Dim s,cut As String
s = “lophocvitinh.COM”
cut = Left(s,12)
Msgbox cut
‘Kết quả xuất ra chuỗi lophocvitinh (12 ký tự)
c.       Cắt phải
Right(chuỗi,số ký tự cần cắt)
Ví dụ:
Dim s, cut As String
s = "lophocvitinh.COM"
cut = Right(s, 3)
MsgBox cut
d.      Cắt ở giữa
Mid(chuỗi,vị trí bắt đầu lấy,chiều dài chuỗi muốn cắt)
Ví dụ:
Dim s, cut As String
s = "lophocvitinh.COM"
cut = Mid(s, 7, 6)
MsgBox cut
Thứ Tư, 19 tháng 7, 2017

VBA Macro - Bài 08 - Xử lý lỗi trong VBA Macro


Quay về mục lục VBA Macro

+ Khi code VBA của bạn có lỗi, Excel sẽ hiển thị thông báo lỗi kèm vị trí của đoạn Sub bị lỗi đó (tô màu vàng).




+ Để chạy debug từng dòng lệnh trong VBA ta bấm F8

VBA Macro - Bài 07 - Các câu lệnh lặp

Quay về mục lục VBA Macro

1.       Vòng lặp For…Next
+ Cú pháp:
Dim i As Integer
For i=0 To n
Câu lệnh 1
Câu lệnh 2
Câu lệnh n
Next i
+ Ví dụ:
                Dim i As Integer
                For i=0 To 10
                                Msgbox i
                Next i   
Bạn cũng có thể lồng nhiều vòng lặp For với nhau.Ví dụ:
Dim i,j As Integer
For i=1 To 3
                For j=1 To 3
                                Cells(i,j).value = 100
                Next j
Next i
Các bạn qua màn hình Worksheet sẽ thấy 01 khối (A1:C3) đều có giá trị là 100

VBA Macro - Bài 06 - Cú pháp If

If Dieukien Then Câu Lệnh
Hoặc:
If Dieukien Then
Câu lệnh 1
            Câu lệnh 2

Câu lệnh n

End If
Ví dụ:
If 1 = 1 Then MsgBox "Sai"
ð  Kết quả sẽ xuất ra 01 thông báo : “Sai”

*Cú pháp 2:
If Dieukien Then
            Câu lệnh 1
            Câu lệnh 2

Câu lệnh n
Else
            Câu lệnh 1
            Câu lệnh 2

Câu lệnh n
End If
Ví dụ:

VBA Macro - Bài 05 - Cách sử dụng biến trong VBA.docx


Quay về mục lục VBA Macro

VBA có 04 loại biến sau:
1.       Integer -> Số nguyên
2.       Double -> Số thực (có dấu “.”)
3.       Boolean -> TRUE hay FALSE
4.       String -> Kiểu chuỗi
Để ép user phải khai báo biến trước khi sử dụng , ta dùng câu lệnh sau ở ngay dòng đầu tiên trước khi khai báo Function hay Sub
Option Explicit
Khi đã có dòng này nếu sử dụng biến mà chưa khai báo Dim, VBA sẽ báo lỗi.
Ví dụ:



Thông báo lỗi sẽ là:

Tùy vào dữ liệu đầu vào ta sẽ khai báo cho hợp lý.

VBA Macro - Bài 04 - Đối tượng Range vs Cells

Quay về mục lục VBA Macro

****Range là gì? Range và Cells khác nhau ra sao?
+ Đối tượng Range là đối tượng hay sử dụng nhất trong Excel VBA.
+ Range dùng để thao tác trên 01 ô hay 01 nhóm ô Excel
Ví dụ:
Gán giá trị ô A1 là 10 => Gõ code: Range(“A1”).value = 10
Gán giá trị cho A1:C3 là 10 => Gõ code: Range(“A1:C3”).value = 10
Các bạn chạy lệnh và xem kết quả nhé.
+ Cells là thuộc tính (properties) của Range dùng để chỉ tọa độ 01 ô trong vùng Range.Nếu không ghi rõ vùng range thì mặc định VBA sẽ chọn range=”toàn bộ ActiveSheet”=>tọa độ của Cells sẽ bắt đầu từ vị trí dòng 01 cột 01=>Cells(dòng,cột)
Ví dụ:
Gán giá trị 10 cho ô A2 => Gõ code: Cells(2,1).value = 10
Gán giá trị 10 cho ô đầu tiên trong vùng A1:C5=> Gõ code: Range(“A1:C5”).Cells(1,1).value = 10
+ Do Cells có thuộc tính tọa độ là các số nên thường được dùng cho các vòng lặp

****01 số cách sử dụng đối tượng Range****

VBA Macro - Bài 03 - Đối tượng Workbooks vs Worksheets


Quay về mục lục VBA Macro

+ Trong Excel, các đối tượng được sắp xếp theo thứ tự sau:
 




+ Application là đối tượng lớn nhất (phần mềm Excel) chứa tất cả các đối tượng khác.Các đối tượng được gọi đến ngăn cách nhau bởi dấu “.”
Ví dụ:
Điền chữ “Lophocvitinh.COM” vào ô A1 trong sheet NTM ta gõ dòng code sau:
Application.ThisWorkbook.Worksheets("NTM").Range("A1").Value = "Lophocvitinh.COM"
Thứ Sáu, 7 tháng 7, 2017

VBA Macro - Bài 02 - Các hàm thông báo


Quay về mục lục VBA Macro

Trong VBA Excel có 02 hàm thông báo hay sử dụng:
01 – MsgBox(hiện thông báo và các nút chọn)
02 – InputBox (cho user nhập liệu)
Tùy vào mục đích của bạn mà sử dụng cho phù hợp.

****Cú pháp Msgbox****
MsgBox “Câu thông báo”,nút,”Tiêu đề”
Nếu lấy kết quả trả về từ người dùng thì thêm cặp dấu MsgBox(“Câu thông báo”,nút,”Tiêu đề”)
Các nút thông dụng trong hàm MsgBox:


vbOKCancel : 02 nút OK và Cancel
vbOKOnly: chỉ có nút OK
vbYesNo: có 02 nút Yes và No
vbYesNoCancel: có 03 nút Yes, No, Cancel
Thứ Năm, 6 tháng 7, 2017

VBA Macro – Bài 01 – Giới thiệu và Cài đặt

Quay về mục lục VBA Macro

  • Lophocvitinh.COM xin giới thiệu với các bạn loạt bài VBA Macro (chủ yếu là Excel).
  • VBA – Visual Basic Application là 01 ứng dụng đi kèm với các phần mềm Microsoft Office(Word, Excel, Outlook,…)
  • Cú pháp của nó như tên gọi giống với ngôn ngữ Visual Basic dùng để tự động hóa 01 công việc nào đó.
  • Các đoạn code VBA bao gồm Hàm (Function) hoặc Thủ tục (Sub) được gọi là các Macro.
  • Các bạn vào đây để xem thêm: https://vi.wikipedia.org/wiki/VBA
  • Loạt bài này chủ yếu tôi sẽ viết về lập trình VBA trong Excel.
  • Để mở được IDE của VBA trong Excel 2013 ta vào menu File -> Options -> Customize Ribbon -> Check vào Developer


Sau đó vào lại Excel các bạn sẽ thấy xuất hiện thêm 01 menu Developer

Bây giờ ta sẽ viết thử 01 macro đầu tiên hiện hộp thông báo Xin Chào!!!
Facebook Youtube RSS