В Excel vba получение вывода высот строк легко выполнить с помощью свойства rows.height:
Sub outputRowHeight()
Dim i As Integer
For i = 1 To 50
Debug.Print Rows(i).Address & " is : " & Rows(i).Height
Next i
End Sub
Для ширины столбца мы используем свойство columns.width. Это немного сложнее, потому что вы не можете напрямую перебирать буквы алфавита, поэтому вместо этого нам нужно использовать индекс:
Sub outputColumnWidths1()
Dim i As Integer
For i = 1 To 26 '26th letter is Z
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Next i
End Sub
Если вы хотите избежать необходимости знать индекс буквы, вы можете использовать оператор if для выхода после выхода за пределы диапазона:
Sub outputColumnWidths2()
Dim i As Integer
For i = 1 To 99 'using 99 as arbitrary high end number
If Columns(i).Address <> "$AA:$AA" Then
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Else 'once we get outside of A-Z, we want to end.
Exit For
End If
Next i
End Sub
Это даст те же результаты, что и в первом примере, но вы можете расширить его на столько столбцов, сколько хотите, увеличив номер итерации и имя первого столбца первого, который вы не хотите оценивать.
Надеюсь, это поможет!