Как создать форму с отверстием в Excel VBA?Создать форму с отверстием в Excel VBA
Private Sub test_freeform()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws.Shapes.BuildFreeform(msoEditingAuto, 20, 20) ' returns FreeFormBuilder
.AddNodes msoSegmentLine, msoEditingAuto, 100, 20
.AddNodes msoSegmentLine, msoEditingAuto, 100, 100
.AddNodes msoSegmentLine, msoEditingAuto, 20, 100
.AddNodes msoSegmentLine, msoEditingAuto, 20, 20
.AddNodes msoSegmentLine, msoEditingAuto, 30, 30
.AddNodes msoSegmentLine, msoEditingAuto, 30, 60
.AddNodes msoSegmentLine, msoEditingAuto, 60, 60
.AddNodes msoSegmentLine, msoEditingAuto, 60, 30
.AddNodes msoSegmentLine, msoEditingAuto, 30, 30
.AddNodes msoSegmentLine, msoEditingAuto, 20, 20
.ConvertToShape
End With
End Sub
Это создает форму с сегментом, который соединяет верхний левый угол внешнего прямоугольника с верхним левым углом отверстия. Я хочу как-то избавиться от этого сегмента. Некоторые из предопределенных форм Excel имеют в них правильные отверстия, поэтому я знаю, что такая форма может существовать.
Какой формы вы пытаетесь? В Excel 2010 есть встроенные фигуры с отверстиями в них, такие как 'msoShapeDonut' и' msoShapeFrame' –
Pankaj. Это предопределенные формы. Я хочу создать свою собственную форму programmaticaly, в которой есть одно или несколько отверстий. Форма представляет собой прямоугольник, а размер и положение отверстий зависят от данных, которые я передаю в рутину. – nsg