這幾天小編覺得一張一張圖輸出很累,然後圖又要增加其他標籤,決定做一個群組自動建群的VBA,然後順便輸出成照片,如下圖,有2張股票市場常見的圖,小編透過文字方塊增加一個8021的文字方塊在走勢圖中,來看看怎樣群組化,滑鼠點選然後選群組 XD
之前有一篇自動存檔的教學,當中有提到ARRAY(工作表名稱),概念是一樣的。
先用陣列Array("Chart 4", "Chart 5", "TextBox 13")包物件起來,然後再用
SHARPES.RANGE().GROUP包起來即可,如下:
ActiveSheet.Shapes.Range(Array("Chart 4", "Chart 5", "TextBox 13")).Group
相反要解除,透過UNGroup即可。
那前面小編有提到想要自動輸出成照片.....這可不是透過EXPORT指令,因為Shapes物件沒這好用的方法 xd 微軟大大聽到麻煩未來把這物件增加這功能,感恩。
小編是CopyPicture方式來滿足此一需求,之前有一篇line自動傳圖的文章有提過。
vba:
Set Group_OUT = ActiveSheet.Shapes.Range(Array("Chart 4", "Chart 5", "TextBox 13")).Group 'objects.name in array | |
Set Shape_OUT = Group_OUT | |
Shape_OUT.CopyPicture xlScreen, xlPicture | |
Set chtObj = ActiveSheet.ChartObjects.Add(Shape_OUT.Left, Shape_OUT.Top, Shape_OUT.Width, Shape_OUT.Height) | |
chtObj.Chart.Paste | |
Application.CutCopyMode = True | |
chtObj.Chart.Export Filename:=ThisWorkbook.Path & "d:\01" & ".png", Filtername:="PNG" | |
chtObj.Delete |