На самом деле, у меня была такая же проблема в прошлом. Для меня лучше всего работает следующий код VBA. Я нашел линейное соотношение методом проб и ошибок.
Код работает как для отдельных ячеек, так и для выбора. В последнем случае квадраты основаны на общей ширине или высоте выделения.
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
Вы можете поместить эти макросы в модуль и назначить им кнопки на панели быстрого доступа.
Обратите внимание, что квадраты исчезают (при изменении ширины столбца) при изменении типа или размера шрифта. Это связано с тем, как Excel вычисляет ширину столбца. См .: https://support.microsoft.com/en-us/kb/214123.