Giỏi kế toán sẽ là lợi thế của bạn trong thực hiện các nghiệp vụ chuyên môn. Nhưng nếu bạn giỏi kế toán mà biết thêm VBA thì như hổ mọc thêm cánh, giúp bạn gia tăng hiệu suất công việc, tiết kiệm thời gian và mở rộng tối đa cơ hội thăng tiến trong nghề nghiệp.
Vậy hôm nay hãy cùng Gitiho tìm hiểu VBA là gì và ứng dụng VBA trong kế toán như nào bạn nhé.
Bạn có phải kế toán viên và đang dành hàng giờ cho các công việc đơn giản, lặp đi lặp lại trong Excel không? Bạn đang suy nghĩ xem có cách nào để tự động hóa các công việc kế toán của mình và tiết kiệm thời gian cũng như tiền bạc không? Nếu bạn đang băn khoăn điều này, có lẽ bạn cần phải học Excel VBA.
Excel VBA là ngôn ngữ lập trình miễn phí và được tích hợp ngay trong Microsoft Excel. Với VBA, bạn có thể tạo macro và các hàm tùy chỉnh trong Excel.
VBA có thể giúp bạn tự động hóa các nhiệm vụ kế toán như nhập dữ liệu, đối chiếu, báo cáo và phân tích. Bằng cách tự động hóa các tác vụ này, bạn có thể:
Nhờ đó, bạn có thể tiết kiệm thời gian và dành chúng cho các hoạt động hữu ích hơn hơn như lập kế hoạch, xây dựng chiến lược, ra quyết định và giải quyết vấn đề.
Giờ đây, bạn đang muốn học Excel VBA nhưng không biết cách để tự học VBA hiệu quả và ứng dụng nó trong công việc kế toán của mình. Gitiho ở đây để giúp bạn. Tham khảo ngay khóa học Tuyệt đỉnh VBA của Gitiho giúp bạn có được những kỹ năng cần thiết để thành thạo công cụ tự động hóa này từ cơ bản đến nâng cao bạn nhé.
Có lẽ, Excel VBA đang được ứng dụng trong rất nhiều lĩnh vực, đặc biệt nó là công cụ không thể thiếu đối với những ai làm kế toán. Bạn có thể tham khảo cách mà Excel VBA đã giúp các kế toán viên thực hiện các nhiệm vụ tự động của mình như nào nhé.
Hàng tháng, các kế toán viên thường phải lập các báo cáo tài chính tóm tắt kết quả hoạt động kinh doanh, bảng cân đối kế toán và báo cáo lưu chuyển tiền tệ của công ty. Nghe có vẻ tốn thời gian phải không?
Câu trả lời sẽ là không nếu bạn sử dụng Excel VBA để tự động hóa hầu hết quy trình và giúp công việc của bạn trở nên dễ dàng hơn. Bên cạnh đó, các báo cáo được lập phải chính xác, nhất quán và tuân theo tất cả các tiêu chuẩn kế toán liên quan. Kèm theo đó là các biểu đồ và đồ thị để trực quan hóa dữ liệu và nổi bật tình hình tài chính hiện tại của công ty.
Nếu như bạn không dùng VBA, việc tạo báo cáo tài chính hàng tháng có thể sẽ là một cơn ác mộng với bạn, bởi:
Kết quả là bạn có khi phải mất hàng giờ để hoàn thành bản báo cáo và đôi khi tôi mắc lỗi hoặc không kịp deadline. Và mỗi cuối kỳ của bạn sẽ là một chuỗi ngày căng thẳng và mệt mỏi.
Nhờ VBA, bạn có thể tự động hóa toàn bộ quy trình lặp đi lặp lại này như thế nào?
Kết quả, bạn có thể rút ngắn quy trình làm báo cáo tài chính hàng tháng trong vòng chưa đầy một giờ. Sếp có thể phải bất ngờ và gấp rút tăng lương cho bạn đấy.
Giả sử, bạn đang được yêu cầu phân tích chu trình doanh thu của công ty để từ đó xác định các yếu tố cần cải thiện. Chu trình doanh thu là quá trình tạo ra doanh thu cho công ty, từ việc đặt lịch tư vấn sản phẩm, dịch vụ cho đến thanh toán.
Bạn có thể áp dụng Excel VBA để phân tích chu trình doanh thu tự động như sau:
Với Excel VBA, bạn có thể chạy nhiều bản phân tích về chu trình doanh thu trong vòng chưa đầy một ngày đấy.
Excel VBA có thể là một công cụ thực sự hữu ích giúp tiết kiệm thời gian và công sức đối với các tác vụ lặp đi lặp lại. Bạn có thể tham khảo một số mẫu code để thực hiện công việc trong một số trường hợp cụ thể như sau:
Nhập dữ liệu là một trong những công việc phổ biến và tốn nhiều thời gian nhất trong kế toán. Nếu bạn thường xuyên phải nhập dữ liệu từ nhiều nguồn khác nhau như hóa đơn, biên lai, sao kê ngân hàng,… vào bảng tính Excel. Bạn có thể dùng Excel VBA để tạo macro tự động hóa các tác vụ như:
Ví dụ: bạn có thể sử dụng mã ImportCSV() dưới đây để nhập dữ liệu từ tệp CSV vào trang tính:
Sub ImportCSV()
Dim FileName As String
FileName = Application.GetOpenFilename("CSV Files (*.csv), *.csv")
If FileName <> "False" Then
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName _
, Destination:=Range("$A$1"))
.Name = "CSV"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
End Sub
Nhấn phím F5 để chạy mã, VBA sẽ mở một hộp thoại nơi bạn để bạn có thể tải tệp CSV lên Excel như sau:
Lưu ý: trước khi bạn chạy bất kỳ macro nào trên sổ làm việc của riêng mình, hãy đảm bảo bạn đã sao lưu dữ liệu của mình. Bởi nếu xảy ra sai sót thì bạn không thể hoàn tác macro.
Đối chiếu dữ liệu là một nhiệm vụ khá phổ biến và quan trọng khác trong kế toán. Bạn thường xuyên phải đối chiếu dữ liệu từ nhiều nguồn khác nhau như tài khoản ngân hàng, thẻ tín dụng, hóa đơn, biên lai,… để đảm bảo tính chính xác và đầy đủ.
Đây có thể là các thao tác tương đối mất thời gian, nhưng khi dùng VBA, bạn có thể tạo macro để tự động hóa các tác vụ đối chiếu như:
Ví dụ: bạn có thể sử dụng mã CompareWorksheets() này để so sánh hai trang tính và đánh dấu dữ liệu trùng khớp bằng màu xanh lá cây và dữ liệu không khớp bằng màu đỏ:
Sub CompareWorksheets()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim cell As Range
Dim diffCount As Long
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
'Compare worksheets cell by cell
For Each cell In ws1.UsedRange
If cell.Value <> ws2.Range(cell.Address).Value Then
'Highlight mismatching cells in red
cell.Interior.Color = vbRed
ws2.Range(cell.Address).Interior.Color = vbRed
'Count number of differences
diffCount = diffCount + 1
Else
'Highlight matching cells in green
cell.Interior.Color = vbGreen
ws2.Range(cell.Address).Interior.Color = vbGreen
End If
Next
'Display number of differences
MsgBox "Total differences: " & diffCount
End Sub
Khi nhấn phím F5, đoạn mã trên sẽ so sánh hai bảng tính có tên là “Sheet1” và “Sheet2” theo từng ô. Nó sẽ đánh dấu các ô phù hợp bằng màu xanh lá cây và các ô không khớp bằng màu đỏ. Đồng thời sẽ hiển thị số lượng khác biệt trong hộp thông báo.
Là một kế toán viên, bạn chắc chắn thường phải tạo báo cáo cho nhiều mục đích khác nhau như báo cáo tài chính, ngân sách, dự báo, kiểm toán, thuế,.... Những báo cáo này phải chính xác, nhất quán và tuân thủ các tiêu chuẩn và quy định.
Và chắc chắn rồi, bạn có thể dùng VBA để tạo quy trình tự động hóa cho tác vụ lập báo cáo như:
Ví dụ: bạn có thể sử dụng mã CreateReportTemplate() này để tạo mẫu báo cáo có đầu trang, chân trang và bảng:
Sub CreateReportTemplate()
Dim ws As Worksheet
Dim tbl As ListObject
Set ws = Worksheets.Add
ws.Name = "Report"
'Create header
With ws.PageSetup
.CenterHeader = "&""Arial,Bold""&14Report Title"
.LeftHeader = "&""Arial""&10Date: &D"
.RightHeader = "&""Arial""&10Page: &P of &N"
End With
'Create footer
With ws.PageSetup
.CenterFooter = "&""Arial""&10Report Footer"
.LeftFooter = "&""Arial""&10Prepared by: &U"
.RightFooter = "&""Arial""&10Approved by: "
End With
'Create table
Set tbl = ws.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes)
tbl.Name = "Table1"
tbl.TableStyle = "TableStyleMedium2"
'Populate table headers
tbl.HeaderRowRange(1) = "Account"
tbl.HeaderRowRange(2) = "Debit"
tbl.HeaderRowRange(3) = "Credit"
tbl.HeaderRowRange(4) = "Balance"
End Sub
Đoạn mã trên sẽ tạo một bảng tính mới có tên “Báo cáo” và thêm đầu trang, chân trang và bảng vào đó. Bạn có thể tùy chỉnh các thông số của header, footer, table theo nhu cầu của mình.
Kế toán viên cũng thường xuyên phải phân tích dữ liệu từ nhiều nguồn khác nhau như báo cáo tài chính, ngân sách, dự báo, kiểm toán, thuế,.... để hiểu rõ hơn và đưa ra các lời khuyên cho các nhà quản lý.
Bạn có thể dùng VBA để tạo macro để tự động hóa các tác vụ phân tích như:
Ví dụ: bạn có thể sử dụng mã này CreateChartSheet() để tạo bảng biểu đồ hiển thị doanh thu hàng tháng của các sản phẩm khác nhau:
Sub CreateChartSheet()
Dim ws As Worksheet
Dim rng As Range
Dim cht As Chart
Dim i As Long
Set ws = Worksheets("Data")
Set rng = ws.Range("A1:E13")
'Delete existing chart if it exists
On Error Resume Next
Charts("Chart_1").Delete
On Error GoTo 0
'Create chart
Set cht = Charts.Add
cht.Name = "Chart_1"
'Set chart source data
cht.SetSourceData Source:=rng
'Set chart type
cht.ChartType = xlColumnClustered
'Set chart title
cht.HasTitle = True
cht.ChartTitle.Text = "Monthly Revenue by Product"
'Set chart axis titles
cht.Axes(xlCategory).HasTitle = True
cht.Axes(xlCategory).AxisTitle.Text = "Month"
cht.Axes(xlValue).HasTitle = True
cht.Axes(xlValue).AxisTitle.Text = "Revenue"
'Set chart legend
cht.HasLegend = True
cht.Legend.Position = xlBottom
End Sub
Đoạn mã trên sẽ tạo một trang biểu đồ mới có tên "Chart_1" cùng với dữ liệu, tiêu đề, tiêu đề trục và chú giải. Lưu ý rằng thao tác này cũng xóa mọi bảng biểu đồ “Chart_1” đã tạo trước đó có tên giống vậy. Ngoài ra, bạn có thể tùy chỉnh các thông số của biểu đồ theo nhu cầu của mình.
Trên đây là những ứng dụng VBA trong kế toán cũng với một số mẫu code cho các trường hợp sử dụng cụ thể. Hy vọng bạn có thể sử dụng Excel VBA để tự động hóa các tác vụ kế toán và tiết kiệm thời gian cũng như tiền bạc nhé. Chúc bạn thành công!
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!