2018年5月6日 星期日

用Libreoffice writer巨集方便整理文章(Kubuntu24.04)

為了用Kubuntu24.04 LibreOffice writer整理OCR後的文章內容,到網路上用AI幫忙製作巨集,所以把原來的巨集刪去,放上新的巨集,萬一有一天又換系統,可以直接copy來用。

 --------------

  '========================

'更改、代換錯別字 

  '======================== 

 Sub ReplaceTraditionalChars()
 
    Dim oDoc As Object
    Dim oReplace As Object
    Dim i As Long

    oDoc = ThisComponent
    oReplace = oDoc.createReplaceDescriptor()

    '========================
    ' 錯字→正字
    '========================

    Dim OldChars
    Dim NewChars

OldChars = Array(_
"爲","麽","眞","裏","祇","吓","橫征暴斂","纔","誇講","沈","暪","竈","衆", "汚","擧","随","羣","敎","○","强","厦","橱","昇","舘","朶","囘", _
"擡","黑魖魖","説","想象","着","卽","竝","煑","擱樓","技倆","状","攷","令愛", "凄","却","掷","昇","闐無","嬴","一蹤", _
"糟塌","贊美","污","俣","飘","舖","峯","脚","暧","鬪","褭","鬬","锦","册","撤謊","厨","间","旣","靑","寃","駡", _
"陰側側","狠狽","大刺刺","刨根就底","耀升","依仗","告戒","悲慼","刻骨摟心","夢魔","蜻蜒","裳帳","欞","依重", _
"馬疆","夏然","鐐繞","香擯","尤自","撮爾","道聽途說","凈","寵倖","轉圓","克扣","置椽","暗啞","嘍羅","撤手","撤野","撤謊","頻乃", _
"頭昏腦漲","不為己甚","桀傲不馴","麻木不人","怨天由人","彼彼皆是","迫不急待","冒險患難","不甘勢弱","天作之和","環環相叩","面黃饑瘦","面黃飢瘦","華陀再世", _
"既使","若及若離","滿腹勞騷","病入膏盲","察顏觀色","無所是事","尋人啟示","坐想其成","並發症","出奇不意","經驗老道","克苦耐勞","穩操勝卷","出奇致勝","既往不究", _
"一昧指責","故有道德","無耐","禮上往來","曲指可數","抨然心動","報怨不已","劈荊斬棘","孤柱一擲","估名釣譽","越廚代庖","一轟而散","神采弈弈","以逸代勞", _
"待慢不周","忝不知恥","試目以待","固步自封","即然","素味平生","實事求事","一柱香","興緻勃勃","迴然不同","伏首認罪","後補","元霄", _
"坐無虛席","東施笑顰","汗流夾背","打洋","愛烏及屋","急言厲色","急風勁草","贏虧","集思廣義","擔誤","跨下之辱","協迫","其有此理", _
"供獻","啟用新人","十八班武藝","喧然大波","破斧沉舟","白頭諧老","仗義直言","老生長談","慧星", _
"含養","魚目渾珠","深自警剔","盯哨","見義思遷","必竟不同","床第","相形見茁","不徑而走","如火如茶","按步就班","成成相因", _
"牢雁分飛","側身其間","垂手可得","剛復自用","心心相惜","可見一般","蜚然成章","清析可見","焚膏繼咎","始終不逾","西裝畢挺", _
"爾今爾後","滄海一栗","草管人命","妄自匪薄","遺笑大方","奢侈浪廢","絕不寬待","雷霆萬軍","以免向偶","必須品","摧促","義氣用事", _
"騷首弄姿","應接不遐","英雄氣慨","換然一新","金壁輝煌","模擬兩可","秉告","盤根錯結","黃梁一夢","肆業","安祥","垢病","陰謀鬼計", _
"令人暇想","頂頂大名", _
"一股作氣","戰戰競競","何常如此","明查秋豪","明查秋毫","展露頭角","作幣","欲蓋彌章","催毀","祺袍","澈底了解","五榖欠收", _
"冷寞疏離","搧惑人心","克紹基裘","張燈結彩","一切就序","未雨稠謬","未雨稠繆","提網契領","提網挈領","流言飛語","朗頌","悔人不倦", _
"年青","箭拔弩張","驕生慣養","發奮","憤發","殘無人道","眼花瞭亂","眼花鐐亂","渾身解術","裝璜","防犯災害","暗劍難防","揖捕歸案", _
"是何原故","篷壁","蓬壁","四處漫延","人才倍出","彼此牽就","挺而走險","隨手塗鴨","令人不恥","大氣晚成","轉寰","蜂湧而上", _
"震憾人心","接腫而至","敦品力學","帶罪立功","不共帶天","榮穫冠軍","成積進步","小心奕奕","堅難","驅之若騖","趨之若騖","蹧塌", _
"糊口","響往","爛芋充數","爛竽充數","一洩千里","知書達理","功虧一潰","金榜提名","鍛羽而歸","糜糜之音","風糜一時","好高鶩遠", _
"鳩佔雀巢","和靄可親","脾氣暴燥","心無旁騖","趨之若騖","見往如來","攏絡人心","眾口爍金","鳳毛鱗角","關念", _
"准備","准是","准會","准確","准則","准繩","准時","准頭","准兒","准確","看准","對准","瞄准","校准","平准","認准","算准","水准","標准","基准", _
"拍准","鼻准","范圍","就范","范疇","模范","示范","典范","防范","風范","規范","症結","精辟","開辟","朴素","純朴","家伙","克星","憂心仲仲", _
"豪氣千雲","飛檐走壁","細致","杰作","豪杰","杰出","俊杰","贊美","贊賞","贊好","贊揚","贊嘆","贊歎","贊譽","贊誇","誇贊","贊許","稱贊","頌贊", _
"禮贊","贊佩","長歎","歎息","歎氣","感歎","歎口氣","歎了口氣","歎了一口","讚同","讚成","沖鋒","沖烽","沖刺","沖突","例嘴","齡牙咧嘴","呲牙咧嘴", _
"心髒","臟兮兮","骯臟","栽臟","游戲","游樂","旅游","交游","游玩","游賞","游蹤","游方","逍遙游","游山玩水","關系","日歷","制成","制品","制造","制做","制作","研制","復制","縫制", _
"配制","調制","特制","煉制","訂制","采購","采取","采集","采訪","采摘","采補","采用","采納","開采","先采","博采","理采","松手","松了口氣", _
"松散","松馳","松弛","松懈","松開","松松","松懈","松軟","忪懈","松解","輕松","又松","放松","很松","蓬松","松了手","松了一口","輕輕鬆松","糊涂", _
"胡涂","胡裡胡涂","涂點","涂地","涂抹","涂炭","只身","片紙只字","想象","相象","好象","就象","假像","跡像","對像","系牢","系緊","系鈴","維系", _
"聯系","卷土","卷起","卷入","卷繞","又卷","卷髮","卷進","席卷","飛卷","卷騰","估污","餘哩","餘裡","幾裡","數裡","半裡","余暉","余悸","余燼", _
"余暇","余地","余怒","余蔭","余音","余額","余力","余勁","余溫","余孽","余下","余年","余威","有余","其余","多余","尚余","余波","寬余","業余", _
"盈余","丈余","百余","尺余","之余","舍棄","舍生","舍命","舍得","舍不得","不舍","割舍","取舍","舍近求遠","顫栗","寒栗","戰栗","悚粟","悚栗", _
"栗怵","驚栗","不寒而栗","不寒而粟","系于","胡須","拈須","捋須","虯須","報道","向導","標志","郁悶","陰郁","沉郁","積郁","愁郁","淬然","拂然", _
"挂著","挂肚","挂念","挂上","一絲不挂","記挂","牽挂","龍鐘","鐘情","鐘愛","鐘靈","情有獨鐘","峰回路轉","鎖甲","銷甲","御敵","防御","朱諭", _
"強奸","消餌","証","詞匯","柜","答復","批復","分道揚鏢","推荐","舉荐","血荐","拐仗","復雜","僥幸","洒","泄氣","外泄","發泄","扇風點火","時衡大局", _
"并排","并不","并沒","并非","并對","并能","并無","并且","應征","象征","課征","特征","征募","征兵","征求","征兆","征詢","征召","征收", _
"愿","笑里藏刀","干系","撤手","槍杆","光杆","筆杆","耿耿于懷","工于心計","血濃于水","無動于衷","無濟于事","于事無","聯篇","美丑","丑惡", _
"丑陋","丑聞","丑怪","丑八怪","包札","包扎","纏扎","駐扎","扎營","蒙朧","煩腦","發楎","郤","清懼","挽聯","鱗峋","回廊","抑製","製度","熟捻", _
"虛于委蛇","待寵而驕","了若指掌","玉石懼焚","如便在喉","未雨綢緞","孤註一擲","蓬革生輝","為虎作脹","為虎作悵","借著代籌","撲塑迷離","強弩之未", _
"魂牽夢系","免起鶻落","形單影只","降尊纖貴","降貴纖尊","纖尊降貴","仆仆風塵","風塵仆仆","楔而不捨","直言不違","聲色懼厲","分道揚鐮","耳儒目染", _
"威協","仵逆","聯抉","搭汕","螟伶","嬉游","纍贅","蜱睨","怔仲","斗蓬","眼晴","仟悔","白哲","曆史","瀟酒","拒決","側隱之心","柔夷", _
"坦護","拿蹺","籍故","剛復","儀俵","鐘馗","掬心","倒媚","迷蒙","色厲內在","祭騖不馴","桀騖不馴","美輪美英","淬遭","窗明幾淨", _
"沓如黃鶴","世胃","貴冑","感慨系之","贏弱","薄幸","移尊就教","眼臉","濃纖合度","豐姿","暖昧","噯昧","盂浪","嗔目","寅夜","樵悴","懦雅", _
"回光返照","嘎然而止","頜首","郭衣百結","君子好求","徘側","鵲巢塢佔","慚槐","暴珍天物","回光","七情六欲","樓衣","艱巨","見拙","山拗","木吶", _
"迴然","末曾","擺布","游蕩","攸地","喝彩","喝起彩","彩聲","氣宇","畫夜","鵲衣百結","淮確","消彌","服服帖帖","服帖","妥妥帖帖","妥帖","重蹈覆側", _
"貌視","推逶","熨帖","感概","慨念","白晰","斯守","幸免","氣衝衝","興衝衝","袒裼裸程","暇疵","蓮篷","僥悻","幢憬","宣染","週圍","週到","週章","週身","四週","週旋","週密","倡狂","錢庄","庄家", _
"雜志","注冊","奇跡","推御","腹槁","酒撰","托附","拜托","委托","寄托","依托","請托","轉托","懇托","囑托","付托","相托","托付","托咐","托言", _
"托辭","托管","托運","托孤","托夢","托病","托病","托名","受托","交托","信托","托缽","托故","受人之托","倚託","泉涌","重復","重覆","繁復", _
"復誦","浩浩盪盪","浩盪","遊盪","淫盪","徊盪","回盪","盪氣徊腸","迂徊","徊旋","徊響","盪然","農歷","陰歷","陽歷","黃歷","舊歷","茶幾","掙紮", _
"臟亂","局促","灰蒙蒙","迷蒙蒙","緬腆","裊娜","膛目","殺羽","經渭分明","籍口","淌渾水","趟渾水","粗曠","嚴然","千回百轉","晒然","穩扎", _
"份外眼紅","懷壁","殺雞警猴","藤羅","劫後余生","寒喧","淵亭岳峙","蔥籠","豆寇年華","陷井","無精打採","決竅","隅隅","按耐","宣泄","泄露","蔥寵", _
"回蕩","伊啞","宜瞋宜喜","出入意表","慰籍","櫬衫","模揩","腰枝","抽像","崩緊","缺撼","景像","景像","挪榆","挪揄","揶榆","椰榆","藉著代籌", _
"摺臉","摺汗","摶鬥","淸","踪","摺著汗","脗","刋","觑","覻","躭","携","闹", _
)


NewChars = Array(_
"為","麼","真","裡","只","嚇","橫徵暴斂","才","誇獎","沉","瞞","灶","眾", "汙","舉","隨","群","教","〇","強","廈","櫥","升","館","朵","回", _
"抬","黑魆魆","說","想像","著","即","並","煮","閣樓","伎倆","狀","考","令嬡","淒","卻","擲","升","闃無","贏","一縱", _
"糟蹋","讚美","汙","俁","飄","鋪","峰","腳","曖","鬥","裡","鬥","錦","冊","撒謊","廚","回","既","青","冤","罵", _
"陰惻惻","狼狽","大剌剌","刨根究底","擢升","倚仗","告誡","悲戚","刻骨鏤心","夢魘","蜻蜓","衾帳","櫺","倚重", _
"馬韁","戛然","繚繞","香檳","猶自","蕞爾","道聽塗說","淨","寵幸","轉圜","剋扣","置喙","喑啞","嘍囉","撒手","撒野","撒謊","頻仍", _
"頭昏腦脹","不為已甚","桀驁不馴","麻木不仁","怨天尤人","比比皆是","迫不及待","冒險犯難","不甘示弱","天作之合","環環相扣","面黃肌瘦","面黃肌瘦","華佗再世", _
"即使","若即若離","滿腹牢騷","病入膏肓","察言觀色","無所事事","尋人啟事","坐享其成","併發症","出其不意","經驗老到","刻苦耐勞","穩操勝券","出奇制勝","既往不咎", _
"一味指責","固有道德","無奈","禮尚往來","屈指可數","怦然心動","抱怨不已","披荊斬棘","孤注一擲","沽名釣譽","越俎代庖","一哄而散","神采奕奕","以逸待勞", _
"怠慢不周","恬不知恥","拭目以待","故步自封","既然","素昧平生","實事求是","一炷香","興致勃勃","迥然不同","俯首認罪","候補","元宵", _
"座無虛席","東施效顰","汗流浹背","打烊","愛屋及烏","疾言厲色","疾風勁草","盈虧","集思廣益","耽誤","胯下之辱","脅迫","豈有此理", _
"貢獻","起用新人","十八般武藝","軒然大波","破釜沉舟","白頭偕老","仗義執言","老生常談","彗星", _
"涵養","魚目混珠","深自警惕","盯梢","見異思遷","畢竟不同","床笫","相形見絀","不脛而走","如火如荼","按部就班","陳陳相因", _
"勞燕分飛","廁身其間","唾手可得","剛愎自用","惺惺相惜","可見一斑","斐然成章","清晰可見","焚膏繼晷","始終不渝","西裝筆挺", _
"而今而後","滄海一粟","草菅人命","妄自菲薄","貽笑大方","奢侈浪費","絕不寬貸","雷霆萬鈞","以免向隅","必需品","催促","意氣用事", _
"搔首弄姿","應接不暇","英雄氣概","煥然一新","金碧輝煌","模稜兩可","稟告","盤根錯節","黃粱一夢","肄業","安詳","詬病","陰謀詭計", _
"令人遐想","鼎鼎大名", _
"一鼓作氣","戰戰兢兢","何嘗如此","明察秋毫","明察秋毫","嶄露頭角","作弊","欲蓋彌彰","摧毀","旗袍","徹底了解","五榖歉收", _
"冷漠疏離","煽惑人心","克紹箕裘","張燈結綵","一切就緒","未雨綢繆","未雨綢繆","提綱挈領","提綱挈領","流言蜚語","朗誦","誨人不倦", _
"年輕","劍拔弩張","嬌生慣養","發憤","奮發","慘無人道","眼花撩亂","眼花撩亂","渾身解數","裝潢","防範災害","暗箭難防","緝捕歸案", _
"是何緣故","蓬蓽","蓬蓽","四處蔓延","人才輩出","彼此遷就","鋌而走險","隨手塗鴉","令人不齒","大器晚成","轉圜","蜂擁而上", _
"震撼人心","接踵而至","敦品勵學","戴罪立功","不共戴天","榮獲冠軍","成績進步","小心翼翼","艱難","趨之若鶩","趨之若鶩","蹧蹋", _
"餬口","嚮往","濫竽充數","濫竽充數","一瀉千里","知書達禮","功虧一簣","金榜題名","鎩羽而歸","靡靡之音","風靡一時","好高騖遠", _
"鳩佔鵲巢","和藹可親","脾氣暴躁","心無旁鶩","趨之若鶩","鑑往如來","籠絡人心","眾口鑠金","鳳毛麟角","觀念", _
"準備","準是","準會","準確","準則","準繩","準時","準頭","準兒","準確","看準","對準","瞄準","校準","平準","認準","算準","水準","標準","基準", _
"拍準","鼻準","範圍","就範","範疇","模範","示範","典範","防範","風範","規範","癥結","精闢","開闢","樸素","純樸","傢伙","剋星","憂心忡忡", _
"豪氣干雲","飛簷走壁","細緻","傑作","豪傑","傑出","俊傑","讚美","讚賞","讚好","讚揚","讚歎","讚歎","讚譽","讚誇","誇讚","讚許","稱讚","頌讚", _
"禮讚","讚佩","長嘆","嘆息","嘆氣","感嘆","嘆口氣","嘆了口氣","嘆了一口","贊同","贊成","衝鋒","衝鋒","衝刺","衝突","咧嘴","齜牙咧嘴","齜牙咧嘴", _
"心臟","髒兮兮","骯髒","栽贓","遊戲","遊樂","旅遊","交遊","遊玩","遊賞","遊蹤","遊方","逍遙遊","遊山玩水","關係","日曆","製成","製品","製造","製做","製作","研製","複製","縫製", _
"配製","調製","特製","煉製","訂製","採購","採取","採集","採訪","採摘","採補","採用","採納","開採","先採","博採","理睬","鬆手","鬆了口氣", _
"鬆散","鬆弛","鬆弛","鬆懈","鬆開","鬆鬆","鬆懈","鬆軟","鬆懈","鬆解","輕鬆","又鬆","放鬆","很鬆","蓬鬆","鬆了手","鬆了一口","輕輕鬆鬆","糊塗", _
"胡塗","胡裡胡塗","塗點","塗地","塗抹","塗炭","隻身","片紙隻字","想像","相像","好像","就像","假象","跡象","對象","繫牢","繫緊","繫鈴","維繫", _
"聯繫","捲土","捲起","捲入","捲繞","又捲","鬈髮","捲進","席捲","飛捲","捲騰","沾污","餘里","餘里","幾里","數里","半里","餘暉","餘悸","餘燼", _
"餘暇","餘地","餘怒","餘蔭","餘音","餘額","餘力","餘勁","餘溫","餘孽","餘下","餘年","餘威","有餘","其餘","多餘","尚餘","餘波","寬餘","業餘", _
"盈餘","丈餘","百餘","尺餘","之餘","捨棄","捨生","捨命","捨得","捨不得","不捨","割捨","取捨","捨近求遠","顫慄","寒慄","戰慄","悚慄","悚慄", _
"慄怵","驚慄","不寒而慄","不寒而慄","繫於","鬍鬚","拈鬚","捋鬚","虯鬚","報導","嚮導","標誌","鬱悶","陰鬱","沉鬱","積鬱","愁鬱","猝然","怫然", _
"掛著","掛肚","掛念","掛上","一絲不掛","記掛","牽掛","龍鍾","鍾情","鍾愛","鍾靈","情有獨鍾","峰迴路轉","鎧甲","鎧甲","禦敵","防禦","硃諭", _
"強姦","消弭","證","詞彙","櫃","答覆","批覆","分道揚鑣","推薦","舉薦","血薦","拐杖","複雜","僥倖","灑","洩氣","外洩","發洩","搧風點火","旴衡大局", _
"並排","並不","並沒","並非","並對","並能","並無","並且","應徵","象徵","課徵","特徵","徵募","徵兵","徵求","徵兆","徵詢","徵召","徵收", _
"願","笑裡藏刀","干係","撒手","槍桿","光桿","筆桿","耿耿於懷","工於心計","血濃於水","無動於衷","無濟於事","於事無","連篇","美醜","醜惡", _
"醜陋","醜聞","醜怪","醜八怪","包紮","包紮","纏紮","駐紮","紮營","朦朧","煩惱","發揮","卻","清臞","輓聯","嶙峋","迴廊","抑制","制度","熟稔", _
"虛與委蛇","侍寵而驕","瞭若指掌","玉石俱焚","如鯁在喉","未雨綢繆","孤注一擲","蓬蓽生輝","為虎作倀","為虎作倀","借箸代籌","撲朔迷離","強弩之末", _
"魂牽夢縈","兔起鶻落","形單影隻","降尊紆貴","降貴紆尊","紆尊降貴","僕僕風塵","風塵僕僕","鍥而不捨","直言不諱","聲色俱厲","分道揚鑣","耳濡目染", _
"威脅","忤逆","聯袂","搭訕","螟蛉","嬉遊","累贅","睥睨","怔忡","斗篷","眼睛","懺悔","白皙","歷史","瀟灑","拒絕","惻隱之心","柔荑", _
"袒護","拿翹","藉故","剛愎","儀表","鍾馗","掏心","倒楣","迷濛","色厲內荏","桀驁不馴","桀驁不馴","美輪美奐","猝遭","窗明几淨", _
"杳如黃鶴","世胄","貴胄","感慨係之","羸弱","薄倖","移樽就教","眼瞼","穠纖合度","丰姿","曖昧","曖昧","孟浪","瞋目","夤夜","憔悴","儒雅", _
"迴光返照","戛然而止","頷首","鶉衣百結","君子好逑","悱惻","鵲巢鳩占","慚愧","暴殄天物","迴光","七情六慾","褸衣","艱鉅","見絀","山坳","木訥", _
"迥然","未曾","擺佈","遊蕩","倏地","喝采","喝起采","采聲","器宇","晝夜","鶉衣百結","準確","消弭","服服貼貼","服貼","妥妥貼貼","妥貼","重蹈覆轍", _
"藐視","推諉","熨貼","感慨","概念","白皙","廝守","倖免","氣沖沖","興沖沖","袒裼裸裎","瑕疵","蓮蓬","僥倖","憧憬","渲染","周圍","周到","周章","周身","四周","周旋","周密","猖狂","錢莊","莊家", _
"雜誌","註冊","奇蹟","推卸","腹稿","酒饌","託附","拜託","委託","寄託","依託","請託","轉託","懇託","囑託","付託","相託","託付","託付","託言", _
"託辭","託管","託運","託孤","託夢","託病","託病","託名","受託","交託","信託","託缽","託故","受人之託","倚托","泉湧","重複","重複","繁複", _
"複誦","浩浩蕩蕩","浩蕩","遊蕩","淫蕩","迴盪","迴盪","蕩氣迴腸","迂迴","迴旋","迴響","蕩然","農曆","陰曆","陽曆","黃曆","舊曆","茶几","掙扎", _
"髒亂","侷促","灰濛濛","迷濛濛","靦腆","嬝娜","瞠目","鎩羽","涇渭分明","藉口","蹚渾水","蹚渾水","粗獷","儼然","千迴百轉","哂然","穩紮", _
"分外眼紅","懷璧","殺雞儆猴","藤蘿","劫後餘生","寒暄","淵渟嶽峙","蔥蘢","荳蔻年華","陷阱","無精打采","訣竅","喁喁","按捺","宣洩","洩露","蔥蘢", _
"迴蕩","咿啞","宜嗔宜喜","出人意表","慰藉","襯衫","模楷","腰肢","抽象","繃緊","缺憾","景象","景象","揶揄","揶揄","揶揄","揶揄","藉箸代籌", _
"揩臉","揩汗","搏鬥","清","蹤","揩著汗","吻","刊","覷","覷","耽","攜","鬧", _
)

    '========================

    For i = LBound(OldChars) To UBound(OldChars)

        oReplace.SearchString = OldChars(i)
        oReplace.ReplaceString = NewChars(i)

        oDoc.replaceAll(oReplace)

    Next i

    MsgBox "完成,共取代 " & (UBound(OldChars)+1) & " 組字詞。"

End Sub

    '========================
   '除了「sString 」中的字串外,刪除段落(將下一段文字接到前段)
    '========================
sub Main003()
  Dim oCurrentController As Variant
  Dim oViewCursor As Variant
  Dim oText As Variant
  Dim oObj1 As Variant
  Dim oObj2 As Boolean
  Dim oObj3 As Boolean
  Dim sString As String

  oCurrentController = ThisComponent.getCurrentController()
  oViewCursor = oCurrentController.getViewCursor()
  oText = oViewCursor.getText()
 
  oObj1 = oText.createTextCursorByRange(oViewCursor)
  oObj1.gotoEndOfParagraph(False)
  oObj1.goLeft(1, True)
 
  sString = oObj1.getString()
  oObj1.collapseToEnd()
  oObj1.gotoEndOfParagraph(False)
  oViewCursor.gotoRange(oObj1, False)
    document   = oCurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")   

  if sString = "。" or sString ="?" or sString ="." or sString ="…"  or sString ="!" or sString ="x" or sString ="」"  or sString =":"  or sString ="★"  or sString ="※" then
    rem -----------------------------------
      dispatcher.executeDispatch(document, ".uno:GoToNextPara", "", 0, Array())

  else
    dispatcher.executeDispatch(document, ".uno:Delete", "", 0, Array())
   
  end if
 
end sub
  '-----重複執行巨集(Main003)----------
Sub my_Procedure()
    Call Main003
    Call Main003
    Call Main003
        Call Main003
    Call Main003
    Call Main003
        Call Main003
    Call Main003
    Call Main003
        Call Main003
    Call Main003
    Call Main003
        Call Main003
    Call Main003
    Call Main003
        Call Main003
    Call Main003
    Call Main003
 End Sub
   '========================

  ' ★★★標記之後同一段的字改為粗體字
    '========================
 Sub BoldNextParagraphAndRemoveMarker()

    Dim oDoc As Object
    Dim oSearch As Object
    Dim oFound As Object
    Dim oVCurs As Object
    Dim oTCurs As Object
    Dim count As Integer
    
    oDoc = ThisComponent
    count = 0
    
    ' 建立搜尋功能,尋找 ★★★
    oSearch = oDoc.createSearchDescriptor()
    oSearch.SearchString = "★★★"
    
    ' 取得目前畫面上的游標位置
    oVCurs = oDoc.CurrentController.getViewCursor()
    
    ' 尋找第一個標記
    oFound = oDoc.findNext(oVCurs.getStart(), oSearch)
    
    ' 進入迴圈,只要還找得到 ★★★ 就一直執行
    Do While Not IsNull(oFound)
        ' 1. 刪除 ★★★
        oFound.String = ""
        
        ' 2. 建立文字指標進行精準段落選取並加粗
        oTCurs = oDoc.Text.createTextCursorByRange(oFound.getStart())
        oTCurs.gotoEndOfParagraph(True)
        oTCurs.CharWeight = com.sun.star.awt.FontWeight.BOLD      ' 西方文字粗體
        oTCurs.CharWeightAsian = com.sun.star.awt.FontWeight.BOLD ' 亞洲文字粗體
        
        ' 計算處理了幾處
        count = count + 1
        
        ' 3. 從目前處理完的段落尾端,繼續往下找下一個 ★★★
        oFound = oDoc.findNext(oTCurs.getEnd(), oSearch)
    Loop
    
    ' 結束後提示
    If count > 0 Then
        MsgBox "全部處理完畢!共修改了 " & count & " 處標記。", 64, "提示"
    Else
        MsgBox "從目前位置往後找不到任何 ★★★ 標記。", 48, "提示"
    End If
    

End Sub
  '========================
  '●●●的下一段的段落樣式改為標題1--作為電子書目錄
   '========================
Sub FindAndChangeNextParagraphStyle

    Dim oDoc As Object
    Dim oSearch As Object
    Dim oFound As Object
    Dim oCursor As Object
    Dim iCount As Integer

    oDoc = ThisComponent
    iCount = 0 ' 用來計算總共處理了幾個

    ' 1. 建立搜尋描述物件
    oSearch = oDoc.createSearchDescriptor()
    oSearch.SearchString = "●●●"
    'oSearch.SearchBackward = False

    ' 2. 尋找第一個匹配的文字
    oFound = oDoc.findFirst(oSearch)

    ' 3. 進入迴圈,只要還能找到 ●●● 就繼續執行
    Do While Not IsNull(oFound)
        ' 建立游標並定位在找到的文字上
        oCursor = oDoc.Text.createTextCursorByRange(oFound)
        
        ' 刪除找到的「●●●」
        oCursor.String = ""
        
        ' 將游標移到下一個段落並套用樣式
        If oCursor.gotoNextParagraph(False) Then
            oCursor.ParaStyleName = "Heading 1"
        End If
        
        iCount = iCount + 1

        ' 🔥 關鍵:從目前處理完的位置,繼續尋找下一個「●●●」
        oFound = oDoc.findNext(oFound.End, oSearch)
    Loop

    ' 4. 完成後跳出提示
    If iCount > 0 Then
        MsgBox "處理完成!共修改了 " & iCount & " 處。", 64, "完成"
    Else
        MsgBox "文件中沒有找到任何「●●●」!", 48, "提示"
    End If
End Sub
 '========================
  '註釋用【】之間的文字改為10字型
 '========================
Sub FormatCustomPattern
    Dim oDoc As Object
    Dim oSearch As Object
    Dim oFoundLeft As Object
    Dim oSearchRight As Object
    Dim oFoundRight As Object
    
    ' Dispatcher 相關變數(模擬使用者介面操作)
    Dim oFrame As Object
    Dim oDispatcher As Object
    Dim args(0) As New com.sun.star.beans.PropertyValue

    oDoc = ThisComponent
    oFrame = oDoc.CurrentController.Frame
    oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    ' 1. 設定搜尋左括號 "【"
    oSearch = oDoc.createSearchDescriptor()
    oSearch.SearchString = "【"
    oSearch.SearchCaseSensitive = True

    ' 設定搜尋右括號 "】"
    oSearchRight = oDoc.createSearchDescriptor()
    oSearchRight.SearchString = "】"
    oSearchRight.SearchCaseSensitive = True

    ' 尋找第一個 "【"
    oFoundLeft = oDoc.findFirst(oSearch)

    Do While Not IsNull(oFoundLeft)
        ' 尋找最近的 "】"
        oFoundRight = oDoc.findNext(oFoundLeft.End, oSearchRight)
        
        If Not IsNull(oFoundRight) Then
            ' 2. 透過畫面控制器,將滑鼠游標「真實反白」從 【 的開頭到 】 的結尾
            Dim oVCursor As Object
            oVCursor = oDoc.CurrentController.getViewCursor()
            oVCursor.gotoRange(oFoundLeft.Start, False) ' 移到【前面
            oVCursor.gotoRange(oFoundRight.End, True)   ' 按住 Shift 鍵選取到】後面
            
            ' 3. 【關鍵步驟】模擬使用者點擊字型大小選單,強制改為 10pt
            args(0).Name = "FontHeight.Height"
            args(0).Value = 10
            oDispatcher.executeDispatch(oFrame, ".uno:FontHeight", "", 0, args())
            
            ' 清除反白狀態,將游標移到目前結束位置
            oVCursor.collapseToEnd()
            
            ' 尋找下一個 "【"
            oFoundLeft = oDoc.findNext(oVCursor, oSearch)
        Else
            oFoundLeft = oDoc.findNext(oFoundLeft.End, oSearch)
        End If
    Loop

    MsgBox "處理完成!已透過系統介面強制將字型改為10。", 64, "提示"
End Sub
   '========================
  '在每段最前面和最後面加上"---整理錯別字字串用
  '========================
Sub AddQuotesToParagraphs
    Dim oDoc As Object
    Dim oReplace As Object
    
    oDoc = ThisComponent
    oReplace = oDoc.createReplaceDescriptor()
    
    ' 設定尋找與取代的條件
    oReplace.SearchString = "^.*$"
    oReplace.ReplaceString = """$0"""  ' 在 Basic 中,連續兩個雙引號代表一個真正的雙引號
    oReplace.SearchRegularExpression = True
    
    ' 執行全部取代
    oDoc.replaceAll(oReplace)
End Sub
 '========================

  '將每一段最前面的「"文字",」剪下貼到最後面,並一一接起來
 '========================
Sub MoveParagraphPrefixToEnd
    Dim oDoc As Object
    Dim oSearch As Object
    Dim oFound As Object
    Dim oCursor As Object
    Dim sAccumulatedText As String
    Dim matchedStr As String
    
    oDoc = ThisComponent
    sAccumulatedText = ""
    
    ' 建立搜尋描述器
    oSearch = oDoc.createSearchDescriptor()
    
    ' 設定正規表示法:
    ' ^"([^"]+)", 代表匹配段落開頭的:雙引號 + 任意非雙引號字元 + 雙引號 + 逗號
    oSearch.SearchString = "^""([^""]+)""" & ","
    oSearch.SearchRegularExpression = True
    
    ' 尋找第一個符合的字串
    oFound = oDoc.findFirst(oSearch)
    
    ' 循環尋找所有符合的段落開頭
    Do While Not IsNull(oFound)
        ' 取得匹配到的文字
        matchedStr = oFound.String
        
        ' 串接字串
        sAccumulatedText = sAccumulatedText & matchedStr
        
        ' 將原本位置的字串刪除(設為空字串)
        oFound.String = ""
        
        ' 繼續尋找下一個(因為前一個已被刪除,所以繼續 findFirst 即可)
        oFound = oDoc.findFirst(oSearch)
    Loop
    
    ' 如果有收集到文字,則貼到文件最末端
    If Len(sAccumulatedText) > 0 Then
        oCursor = oDoc.Text.createTextCursor()
        oCursor.gotoEnd(False)
        
        ' 換行並貼上所有串接的字串
        oCursor.String = Chr(13) & sAccumulatedText
        MsgBox "處理完成!已成功搬移字串。", 64, "提示"
    Else
        MsgBox "未找到任何符合 「""文字"",」 格式的段落開頭。", 48, "提示"
    End If
End Sub 

2018年5月5日 星期六

用手機測量血壓、血糖和作計步器

你可能不知道,帶著手機就可以隨時測量血壓血糖值和作為計步器等。實在是方便哩!
前兩天看BBC,有關醫學、健康的節目,其中有談到用手機測量血壓,因為我有「家傳」的高血壓,於是到Google Play商店找測量血壓的app,果然有欸!(若要更準確的測量值,可以到一般儀器測量,然後和手機app校準個兩、三次即可)【可能準確性有待改進,有些app已移除
  
如果你有健康方便需要測量的身體狀況,不妨到 play商店去找找看有什麼app可用。
  
計步器app,將手機帶在身上就可以用來測量一天走了多少步,或散步、慢跑、快走時走了多少步,很方便喔!
  
有什麼想法,三不五時到Play 商店找找看有沒有app可用,倒是給生活帶來許多方便哩!

2018年5月3日 星期四

申請發票手機條碼載具--自動幫你對獎又環保

每次買東西開發票,臺灣一年估計就需要印掉五萬棵樹的紙張。所以去申請電子發票手機條碼載具吧!好處多多:
  
1.環保;
2.自動幫你對獎,中獎後還通知你;
3.設定帳號,獎金自動匯入,連領獎手續都省了。
 真是方便啊!

※如何申請呢!
1.到「財政部電子發票整合服務平台」,點雲端發票申請
2.輸入手機號碼Email ,再點擊「我要申請」即可。(若沒手機,可找家人中任何一支手機;若沒Email,可到google申請一個mail信箱)

※如何使用和設定銀行帳號等,請參考下面這一篇的詳細說明:
如何申請及使用電子發票手機條碼載具?

※接下來,若你想用手機app:
1.在下載之後,直接用「電子信箱帳號」及「手機驗證碼」登入,就可以開始使用。
2.買東西時,向結帳人員說:「我有載具」,然後點app中你的專屬條碼讓他掃一下,發票對獎號碼就歸戶了,開獎時,就自動幫你對獎了。
2.另外,app也可自動掃描已開的統一發票或手動輸入號碼等資料,等開獎時,手機會自動幫你對獎,超方便的。

就醬,趕快動個手吧!環保又方便!