CorelDRAW VBA - 遍歷文檔鸠匀、頁面、圖層和形狀對(duì)象

公告


本專欄的相關(guān)的文章已不在簡(jiǎn)書同步更新逾柿,請(qǐng)直接訪問 VBA探秘 官方網(wǎng)站或關(guān)注微信公眾號(hào)獲取最新文章動(dòng)態(tài)缀棍。

coreldraw-vba-traverse-shapes

目的

本文介紹CorelDRAW VBA代碼遍歷文檔、頁面或圖層中所有對(duì)象的相關(guān)操作代碼机错,有時(shí)候程序可能需要查找頁面上的對(duì)象爬范,用遍歷的方式可實(shí)現(xiàn)批量查找、檢索對(duì)象弱匪。

準(zhǔn)備文檔

創(chuàng)建1個(gè)新文檔青瀑,添加兩個(gè)頁面,在第一個(gè)頁面中添加1個(gè)文本,并導(dǎo)入一張圖像斥难;在第二個(gè)頁面中添加一個(gè)文本枝嘶。如下圖所示:

頁面1
頁面2

代碼演示

下面的代碼采用3重循環(huán)演示了遍歷當(dāng)前文檔中所有頁面、所有圖層哑诊、所有圖形對(duì)象的方法群扶。
注:如果要遍歷所有文檔,則需要在最外層增加1層循環(huán)镀裤,用來遍歷所有文檔竞阐,此處不做演示,有疑問請(qǐng)留言淹禾。

Sub main()
    ' 定義循環(huán)變量
    Dim i As Integer, j As Integer, k As Integer
    Dim allPages As Pages, allShapes As shapes, allLayers As Layers
    ' 定義臨時(shí)變量
    Dim tempPage As Page, tempLayer As Layer, tempShape As Shape
    Dim msg As String

    ' 遍歷文檔中的所有頁面
    Set allPages = ActiveDocument.Pages
    For i = 1 To allPages.Count
        Set tempPage = allPages.Item(i)

        ' 遍歷頁面中的所有圖層
        Set allLayers = tempPage.Layers
        For j = 1 To allLayers.Count
            Set tempLayer = allLayers.Item(j)

            ' 遍歷圖層中的所有形狀(對(duì)象)
            Set allShapes = tempLayer.shapes
            For k = 1 To allShapes.Count
                ' 得到這個(gè)形狀
                Set tempShape = allShapes.Item(k)
                ' 根據(jù)形狀的類型馁菜,輸出不同的信息
                msg = "在頁面" & i & "的圖層" & j & "中,找到了一個(gè):"
                ' 如果是文本形狀
                If tempShape.Type = cdrTextShape Then
                    msg = msg & "文本"
                End If
                ' 如果是位圖形狀
                If tempShape.Type = cdrBitmapShape Then
                    msg = msg & "位圖"
                End If
                ' 打印調(diào)試消息到本地調(diào)試窗口
                Debug.Print msg
            Next k
        Next j
    Next i
    MsgBox "遍歷文檔完成铃岔!請(qǐng)查看調(diào)試窗口"
End Sub

結(jié)果輸出

在頁面1的圖層2中汪疮,找到了一個(gè):位圖
在頁面1的圖層2中,找到了一個(gè):文本
在頁面2的圖層2中毁习,找到了一個(gè):文本

小結(jié)

在文檔遍歷中通常會(huì)用到對(duì)象的集合形式智嚷,例如 Shape 對(duì)象的集合形式是 ShapesPage 對(duì)象的集合形式是 Pages纺且,Layer 對(duì)象的集合形式是 Layers盏道,在定義集合變量的時(shí)候,可以直接這樣定義载碌。


原創(chuàng)聲明:本文首發(fā)于個(gè)人CorelDRAW VBA博客猜嘱,請(qǐng)尊重文章版權(quán)。
轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.cdrvba.com/coreldraw-vba-traverse-shapes/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫁艇,一起剝皮案震驚了整個(gè)濱河市朗伶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌步咪,老刑警劉巖论皆,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異猾漫,居然都是意外死亡点晴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門悯周,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粒督,“玉大人,你說我怎么就攤上這事禽翼∽钩拢” “怎么了萨惑?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵捐康,是天一觀的道長(zhǎng)仇矾。 經(jīng)常有香客問我,道長(zhǎng)解总,這世上最難降的妖魔是什么贮匕? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮花枫,結(jié)果婚禮上刻盐,老公的妹妹穿的比我還像新娘。我一直安慰自己劳翰,他們只是感情好敦锌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著佳簸,像睡著了一般乙墙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上生均,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天听想,我揣著相機(jī)與錄音,去河邊找鬼马胧。 笑死汉买,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佩脊。 我是一名探鬼主播蛙粘,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼威彰!你這毒婦竟也來了出牧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤抱冷,失蹤者是張志新(化名)和其女友劉穎崔列,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旺遮,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赵讯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耿眉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边翼。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鸣剪,靈堂內(nèi)的尸體忽然破棺而出组底,到底是詐尸還是另有隱情丈积,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布债鸡,位于F島的核電站江滨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏厌均。R本人自食惡果不足惜唬滑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棺弊。 院中可真熱鬧晶密,春花似錦、人聲如沸模她。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侈净。三九已至尊勿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間用狱,已是汗流浹背运怖。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夏伊,地道東北人摇展。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像溺忧,于是被迫代替她去往敵國(guó)和親咏连。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,182評(píng)論 25 707
  • QQ 的消息界面鲁森,cell 滑動(dòng)出現(xiàn)刪除祟滴、標(biāo)記已讀、置頂按鈕歌溉,這里只是做一個(gè)高仿的布局頁面垄懂。 拆解 分析 QQ 消...
    redye閱讀 1,347評(píng)論 7 14
  • 1.給寄存器地址賦值 *((int*)0x01)=5; 在嵌入式編譯器里可以強(qiáng)制把數(shù)值變成地址痛垛,再為地址賦值草慧。 2...
    李響lx閱讀 130評(píng)論 0 1