İçindekiler
Kodlu VBA Draw Kutuları
Programlı olarak kutular çizebilmek isteyebileceğiniz birçok neden var, otomatik bir gantt şeması harika olur mu? İşte bunu yapmanın bir yolu.
Bu, bir kutu çizmek için temel koddur:
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75).SeçinSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Gerçekten o kadar da göz korkutucu değil, bakılması gereken sadece iki önemli şey var; Schemecolor açıkça renk ve 0,0,48,12.75'tir.
Peki 0,0,48,12,75 nedir? Basitçe Sol Konum, Üst Konum, Genişlik ve Yükseklik. Bunları istediğiniz gibi ayarlayabilirsiniz, ilk ikisini ekrandaki kutuların konumunu değiştirmek için ve son ikisini kutunun boyutunu değiştirmek için ayarlayabilirsiniz. Hücre ile aynı boyutta bir kutu yapmak için iyi bir tahmin oldukları için bu boyutları kullandım.
Ve yukarıdaki resimdeki yeşil kutuları dinamik olarak çizmek için kullanılan kod:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Alt Dinamik Kutular()Dim x Çift Olarak'Bu yatay kutular yaparx = 0 ila 240 için Adım 48'sol, üst, genişlik, yükseklik 4 sayıya referansActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12.75).SeçinSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSonraki x'Bu dikey kutular yaparx = 0 için 127.5 Adım 12.75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75).SeçinSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSonraki xAlt Bitiş |