Блоки рисования VBA с кодом
Есть много причин, по которым вы можете захотеть программно рисовать блоки. Автоматическая диаграмма Ганта была бы крутой? Вот один из способов сделать это.
Это базовый код для рисования коробки:
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75) .ВыберитеSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
На самом деле это не так уж и страшно, есть только две примечательные вещи, на которые стоит обратить внимание; Schemecolor - это, очевидно, цвет и 0,0,48,12,75.
Так что же 0,0,48,12,75? Просто левое положение, верхнее положение, ширина и высота. Вы можете настроить их по своему усмотрению, отрегулировав первые два, чтобы изменить положение полей на экране, и последние два, чтобы изменить размер поля. Я использовал эти размеры, потому что они были хорошей догадкой при создании коробки такого же размера, как ячейка.
А вот код, используемый для динамического рисования зеленых прямоугольников на изображении выше:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Поддинамические блоки ()Dim x As Double'Это делает горизонтальные коробкиДля x = от 0 до 240 Шаг 48'ссылка на 4 числа слева, сверху, ширина, высотаActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12.75) .ВыберитеSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueДалее x'Это делает вертикальные коробкиДля x = от 0 до 127,5 Шаг 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75) .ВыберитеSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueДалее xКонец подписки |