Thật ra, tôi đã có cùng một vấn đề trong quá khứ. Những gì hoạt động tốt nhất cho tôi là mã VBA sau đây. Tôi tìm thấy mối quan hệ tuyến tính chỉ bằng thử nghiệm và lỗi.
Mã này hoạt động cho các ô đơn, nhưng cũng cho một lựa chọn. Trong trường hợp sau, các hình vuông được dựa trên tổng chiều rộng hoặc chiều cao của lựa chọn.
Sub MakeCellSquareByColumn()
Selection.RowHeight = Selection.Width / Selection.Columns.Count
Selection.ColumnWidth = (((Selection.Width / Selection.Columns.Count) / 0.75 - 5) / 7)
End Sub
Sub MakeCellSquareByRow()
Selection.ColumnWidth = (((Selection.Height / Selection.Rows.Count) / 0.75 - 5) / 7)
Selection.RowHeight = Selection.Height / Selection.Rows.Count
End Sub
Bạn có thể đặt các macro này trong Mô-đun và gán các nút cho chúng trong thanh công cụ truy cập nhanh
Lưu ý rằng các ô vuông biến mất (theo chiều rộng cột thay đổi) khi bạn thay đổi loại hoặc kích thước phông chữ. Điều này là do cách Excel tính toán độ rộng cột. Xem: https://support.microsoft.com/en-us/help/214123/description-of-how-column- thongs-are-determined-in-excel