2021年8月31日 星期二

VBA:群組Group與取消群組Ungroup


這幾天小編覺得一張一張圖輸出很累,然後圖又要增加其他標籤,決定做一個群組自動建群的VBA,然後順便輸出成照片,如下圖,有2張股票市場常見的圖,小編透過文字方塊增加一個8021的文字方塊在走勢圖中,來看看怎樣群組化,滑鼠點選然後選群組 XD

圖1.範例圖檔
更正:VBA 基本語法 先來一下 MSDN:群組、 MSDN:取消群組
首先你要知道你物件的名稱這部分,

可以簡單透過Shapes.Count+for方式來逐一檢查是哪一個

 For i = 1 To activesheet.Shapes.Count
        
    Set myShape = activesheet.Shapes(i)
            
        With myShape

                .selected
                
                debug.print .Name

        End With
    
Next
小編自己的物件名稱為"Chart 4", "Chart 5", "TextBox 13",要群組化很簡單就是下ActiveSheet.Shapes.Range(XXX).Group
指令即可,但多物件要怎做?

之前有一篇自動存檔的教學,當中有提到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:


        來檢查一下,輸出成功.. (/^▽^)/...未來都用這招發圖好了省事。


沒有留言:

張貼留言

我的雷達:2024/11/15

  似乎有一種不安的味道