Excel. Трюки и эффекты | страница 120



Sub ThreeNullSepatator()

Selection.NumberFormat = «#,##»

End Sub

В результате выполнения данного макроса число, например, 1234 5 67 будет представлено в виде 1 234 567. Не стоит забывать, что перед запуском макроса необходимо выделить диапазон, который должен быть отформатирован.

Чтобы отформатировать какой-либо диапазон с использованием разделителя по разрядам и отображением двух знаков после запятой, можно воспользоваться следующим макросом (листинг 3.64).

Листинг 3.64. Изменение формата

Sub ChangeNumerFormatEx()

Selection.NumberFormat = «#,##0.00»

End Sub

В данном случае перед запуском макроса также необходимо выделить требуемый диапазон.

Помещение последнего символа ячейки над строкой

Рассматриваемый в данном подразделе трюк позволяет преобразовать последний символ ячейки в верхний индекс. Для этого следует применить макрос, приведенный в листинге 3.65.

Листинг 3.65. Помещение последнего символа над строкой

Sub LastCharUp()

' Изменение расположения последнего символа ячейки

With ActiveCell.Characters(Start:=Len(Selection),

Length:=1).Font

.Superscript = True

End With

End Sub

В результате выполнения макроса можно в ячейке вместо значения, например, м3 получить значение м>3. При этом следует учитывать, что данный макрос не преобразует числовые значения (например, представление числа 72 не изменится).

Создание нестандартной рамки

Возможности программы позволяют быстро заключить в рамку выделенный диапазон, изменив при этом вид сетки. Для достижения такого эффекта достаточно применить следующий макрос (листинг 3.66).

Листинг 3.66. Нестандартная рамка

Sub ChangeSelGrid()

' Оформление границ выделения

' Левая граница

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

' Правая граница

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

' Верхняя граница

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

' Нижняя граница

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

' Изменение сетки внутри выделения

' Вертикальные линии сетки

With Selection.Borders(xlInsideVertical)

.LineStyle = xlContinuous

.Weight = xlHairline

.ColorIndex = xlAutomatic

End With

' Горизонтальные линии сетки

With Selection.Borders(xlInsideHorizontal)

.LineStyle = xlContinuous

.Weight = xlHairline

.ColorIndex = xlAutomatic