VBA Draw Boxes с код
Има много причини, поради които може да искате да можете да рисувате програмно кутии, автоматизирана диаграма на Гант би била готина? Ето един начин да го направите.
Това е основният код за изчертаване на кутия:
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 | Под DynamicBoxes ()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Следващ xEnd Sub |