Boîtes de dessin VBA avec code
Il y a de nombreuses raisons pour lesquelles vous voudrez peut-être pouvoir dessiner des boîtes par programmation, un diagramme de Gantt automatisé serait-il cool ? Voici une façon de le faire.
Voici le code de base pour dessiner une boîte :
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75).SélectionnezSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Ce n'est vraiment pas si intimidant, il n'y a que deux choses notables à regarder; Schemecolor est évidemment la couleur et le 0,0,48,12,75.
Alors, quel est le 0,0,48,12,75 ? Simplement la position gauche, la position supérieure, la largeur et la hauteur. Vous pouvez les ajuster comme vous le souhaitez, en ajustant les deux premiers pour modifier la position des cases à l'écran et les deux derniers pour modifier la taille de la case. J'ai utilisé ces dimensions car elles étaient une bonne idée pour faire une boîte de la même taille qu'une cellule.
Et voici le code utilisé pour dessiner dynamiquement les cases vertes dans l'image ci-dessus :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Sous DynamicBoxes()Dim x comme double'Cela fait des boîtes horizontalesPour x = 0 à 240 Étape 48'référence aux 4 nombres à gauche, en haut, en largeur, en hauteurActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75).SélectionnezSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSuivant x'Cela fait des boîtes verticalesPour x = 0 à 127,5 Pas 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12,75).SélectionnezSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSuivant xFin du sous-marin |