Bạn đang cần vẽ một hình dạng hay một đối tượng nào đó trong Excel? Trong bài viết này, UniTrain sẽ hướng dẫn bạn cách vẽ bằng VBA Excel.
Lấy ví dụ về thiết kế một hình chữ nhật, một hình chữ nhật có kích thước ô và một hình lập phương. Nhìn chung, đối với tất cả các mã VBA, người dùng thao tác theo các bước dưới đây:
Bước 1: Mở trang tính và lưu tệp Excel dưới dạng Excel Macro-Enabled Workbook (*xlsm).
Bước 2: Chọn Developer > Visual Basic.
Bước 3: Chọn Insert > Module.
Sau đó, người dùng phải viết mã cụ thể trong Module. Do đó, hãy xem các mã sau đây để biết các hình dạng khác nhau.
Thiết kế hình chữ nhật bằng mã VBA
Bước 1: Viết mã dưới đây trong Module 1.
Sub My_Rec()
Set myRec = Worksheets(1)
myRec.Shapes.AddShape msoShapeRectangle, 40, 60, 100, 50
End Sub
Bước 2: Save mã và trở lại Excel File.
Bước 3: Chọn Developer > Macros.
Bước 4: Chọn Macro (My_Rec) > Run.
Sau đó, bạn sẽ thấy hình chữ nhật hiển thị dưới hình dưới.
Định dạng và thiết kế hình chữ nhật
Giả sử, người dùng muốn định dạng đồng nhất màu cho hình chữ nhật và chỉnh sửa kích thước hình chữ nhật giống với kích thước ô của Excel.
Cách thao tác:
Bước 1: Trong tab Developer, chọn Visual Basic > chọn tab Insert > chọn Module.
Bước 2: Nhập mã dưới đây vào Module 2.
Sub My_Cell_Size_Rec()
ActiveSheet.Shapes.AddShape(msoShapeFlowchartProcess, 40, 60, 65, 20).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 16
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Visible = msoTrue
End Sub
Bước 3: Chọn Save và trở lại Excel File > chọn tab Developer > Macros.
Bước 4: Chọn Macro (My_Cell_Size_Rec) > chọn Run.
Cuối cùng, bạn sẽ thấy được hình dạng hình chữ nhật mới như hình dưới.
Vẽ khối lập phương trong Excel bằng mã VBA
Cách thao tác:
Bước 1: Chọn tab Developer > chọn Visual Basic > Insert > Module.
Bước 2: Viết mã dưới đây vào Module 3.
Sub my_cube()
Dim my_cube As Shapes
Set my_cube = ActiveSheet.Shapes
With my_cube
With .AddShape(msoShapeCube, 40, 60, 100, 90).TextFrame
.Characters.Text = "Exceldemy"
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignDistributed
End With
End With
End Sub
Bước 3: Chọn Save và trở lại Excel File > chọn tab Developer > chọn Macros.
Bước 4: Chọn Macro (my_cube) > chọn Run.
Cuối cùng, kết quả sẽ hiển thị như hình dưới.
Thiết kế hình dạng và văn bản bằng mã VBA trong Excel
Cách thao tác:
Bước 1: Trong tab Developer, chọn Visual Basic > Insert > Module.
Bước 2: Nhập mã trong Module 4.
Sub Different_shape_with_Exceldemy()
Dim my_int, my_intgr As Integer
Dim my_x, my_y, my_z, my_sng, my_size As Single
Dim my_shape As Shape
Dim my_difined_text As String
Dim start_frm_left, start_cell_top As Single
start_frm_left = ActiveCell.Left
start_cell_top = ActiveCell.Top
my_difined_text = "Hi Exceldemy"
my_sng = 12
my_intgr = Len(my_difined_text)
my_size = Application.InchesToPoints(1)
For my_int = 1 To my_intgr
If Mid(my_difined_text, my_int, 1) <> " " Then
my_x = my_sng * my_int / my_intgr
my_x = Application.InchesToPoints(my_x)
my_y = Application.InchesToPoints(my_z)
If my_int Mod 2 = 1 Then
Set my_shape = ActiveSheet.Shapes.AddShape(msoShapeUpRibbon, start_frm_left + my_x, start_cell_top + my_y, my_size, my_size)
Else
Set my_shape = ActiveSheet.Shapes.AddShape(msoShapeDownRibbon, start_frm_left + my_x, start_cell_top + my_y, my_size, my_size)
End If
my_shape.Fill.ForeColor.RGB = RGB(chng_shape_clr(155, 200), chng_shape_clr(200, 255), chng_shape_clr)
my_shape.Fill.Visible = msoTrue
my_shape.TextFrame.Characters.Text = UCase(Mid(my_difined_text, my_int, 1))
my_shape.TextFrame.Characters.Font.Size = 24
my_shape.TextFrame.Characters.Font.Name = "Calibri"
my_shape.TextFrame.Characters.Font.Bold = True
my_shape.TextFrame.Characters.Font.Color = RGB(255, 0, 0)
my_shape.TextFrame2.VerticalAnchor = msoAnchorMiddle
my_shape.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
End If
Next my_int
End Sub
Function chng_shape_clr(Optional lwr_bnd As Integer = 100, Optional upr_bnd As Integer = 255) As Integer
chng_shape_clr = Int((upr_bnd - lwr_bnd + 1) * Rnd + lwr_bnd)
End Function
Bước 3: Chọn Save và trở lại Excel File. Sau đó từ tab Developer > chọn Macros.
Bước 4: Chọn Macro (Different_shape_with_Exceldemy) > Run.
Cuối cùng, kết quả sẽ hiển thị như hình dưới đây:
Định dạng đối tượng bằng VBA Excel
Bước 1: Trong tab Developer, chọn Visual Basic > Insert > chọn Module.
Bước 2: Nhập mã dưới đây trong Module 5.
Sub Format_my_Shape()
Dim my_shape As Shape
Worksheets(5).Shapes(1).Fill.ForeColor.RGB = RGB(192, 32, 255)
For Each my_shape In ActiveSheet.Shapes
my_shape.Flip msoFlipHorizontal
Next
End Sub
Bước 3: Chọn Save và trở lại Excel File. Trong tab Developer > chọn Macros.
Bước 4: Chọn Macro (Format_my_Shape) > Run.
Và kết quả sẽ như hình dưới đây:
Xem thêm
Khóa học Ứng dụng VBA trong Excel
Cách thêm Combo Box trong Excel bằng VBA