提起剪貼板是什么_剪貼板Clipboard是什么大家在熟悉不過(guò)了,被越來(lái)越多的人所熟知,那你知道剪貼板是什么_剪貼板Clipboard是什么嗎?快和小編一起去了解一下吧!
(資料圖片)
什么是剪貼板(什么是剪貼板)大家好。今天我們將講解“VBA信息獲取與處理”課程中第十一題“剪貼板在VBA的應(yīng)用”的之一節(jié)“什么是剪貼板”。這個(gè)題目是一個(gè)很有用的知識(shí)點(diǎn),希望你能掌握和利用。
大家好,在之前的專(zhuān)題講座中,我們?cè)?jīng)講過(guò)一個(gè)關(guān)于從 *** 中抓取數(shù)據(jù)的細(xì)節(jié),就是先把數(shù)據(jù)放到剪貼板上,然后再粘貼到工作表中。可以看一下data 006 worksheet.xl *** 。
Sub CopyToClipbox中的程序內(nèi)容,那么什么是剪貼板,使用它有什么好處?對(duì)于VBA的操作來(lái)說(shuō),這個(gè)知識(shí)點(diǎn)有哪些方便性和獨(dú)特性?我們將解釋這個(gè)話(huà)題。
之一節(jié)剪貼板什么是剪貼板
我們平時(shí)操作文件的時(shí)候經(jīng)常會(huì)用到Ctrl+C/X和Ctrl+V,就是把我們需要的內(nèi)容復(fù)制下來(lái),然后粘貼到我們需要的地方。這種操作符合人的感性認(rèn)識(shí)。這種動(dòng)作其實(shí)就是把內(nèi)容放到剪貼板上,也就是一開(kāi)始的專(zhuān)用內(nèi)存,只是這種操作是在后 *** 成的,我們只是沒(méi)有看到而已。
1剪貼板剪貼板的定義和VBA的引用
在Windows的幫助文件中指出,剪貼板是一個(gè)臨時(shí)存儲(chǔ)區(qū)域,用于存儲(chǔ)從一個(gè)地方復(fù)制或移動(dòng)并打算在其他地方使用的信息。您可以選擇文本或圖形,然后使用“剪切”或“復(fù)制”命令將所選內(nèi)容移動(dòng)到剪貼板,它將存儲(chǔ)在剪貼板中,直到使用“粘貼”命令將它插入到其他地方。例如,您可能想要復(fù)制網(wǎng)站上的部分文本,然后將其粘貼到電子郵件中。
對(duì)于VBA,MSForms庫(kù)包含一個(gè)名為DataObject的對(duì)象,該對(duì)象支持在Windows剪貼板上使用文本字符串。VBA不支持剪貼板上其他非文本值所需的數(shù)據(jù)類(lèi)型。若要在代碼中使用數(shù)據(jù)對(duì)象,必須設(shè)置對(duì)Forms 2.0對(duì)象庫(kù)的引用。添加VBA的參考,如下所示:
轉(zhuǎn)到VBA編輯器中的工具菜單,然后選擇引用項(xiàng)。在出現(xiàn)的對(duì)話(huà)框中,向下滾動(dòng)列表,直到找到適當(dāng)?shù)膸?kù)(常見(jiàn)參考列在列表的頂部,之后,參考按字母順序列出)。當(dāng)您找到代碼所需的引用時(shí),請(qǐng)選中引用標(biāo)題旁邊的復(fù)選框,然后單擊“確定”。
2剪貼板剪貼板對(duì)象功能
這個(gè)物體的特征是什么,它是如何工作的?
OpenClipboard中的數(shù)據(jù)存儲(chǔ)在全局內(nèi)存中,因此大多數(shù)windows應(yīng)用程序都可以訪問(wèn)這些數(shù)據(jù)。在遵守相關(guān)API函數(shù)的前提下,應(yīng)用程序可以自由打開(kāi)剪貼板,讀取剪貼板中的數(shù)據(jù)(GetClipboardData)。或者清除空剪貼板(EmptyClipboard),然后設(shè)置剪貼板中的數(shù)據(jù)(SetClipboardData),最后關(guān)閉剪貼板(close clipboard);
2)排他性Windows規(guī)定應(yīng)用程序?qū)糍N板的訪問(wèn)是排他性的。應(yīng)用程序使用OpenClipboard打開(kāi)剪貼板后,其他程序無(wú)法再次訪問(wèn)剪貼板,直到前一個(gè)程序使用CloseClipboard關(guān)閉剪貼板。通常情況下,我們?cè)谑褂眉糍N板時(shí),不會(huì)感覺(jué)到受到其他程序的影響。這是因?yàn)榧糍N板中的數(shù)據(jù)操作都是在內(nèi)存中進(jìn)行的,速度非常快。對(duì)于超大數(shù)據(jù),應(yīng)用還可以選擇延遲渲染機(jī)制來(lái)保證速度。但是在編寫(xiě)剪貼板的時(shí)候要注意:每次使用剪貼板之后一定要記得使用CloseClipBoard將其關(guān)閉;不要把耗時(shí)的代碼放在OpenClipboard和CloseClipboard之間,以免影響其他程序的正常工作。
3)將剪貼板中的數(shù)據(jù)標(biāo)準(zhǔn)化的應(yīng)用窗口稱(chēng)為剪貼板數(shù)據(jù)所有者,其句柄可以通過(guò)ClipboardOwner函數(shù)獲得。相反,如果一個(gè)應(yīng)用程序想把數(shù)據(jù)放入剪貼板,它首先需要成為剪貼板的所有者。要成為ClipboardOwner,程序需要首先將自己的句柄傳遞給OpenClipboard函數(shù)。如果剪貼板中已經(jīng)有數(shù)據(jù),則需要調(diào)用EmptyClipboard首先。
4)多種格式的數(shù)據(jù)可以同時(shí)存儲(chǔ)在多個(gè)剪貼板中,并且它們被放置在全局存儲(chǔ)器中的不同位置;剪貼板中的數(shù)據(jù)包括標(biāo)準(zhǔn)/預(yù)定義的格式,如文本、位圖、Wav聲音,以及非標(biāo)準(zhǔn)/用戶(hù)定義的格式,如word中的字段和公式以及Excel中的圖表。
5)可檢索性對(duì)于已存儲(chǔ)在剪貼板中的每種格式,Windows將為其分配一個(gè)唯一的長(zhǎng)整數(shù)。通過(guò)這個(gè)數(shù)字可以知道對(duì)應(yīng)數(shù)據(jù)格式的名稱(chēng)(GetClipboardFormatName),或者查詢(xún)剪貼板中是否存在對(duì)應(yīng)的數(shù)據(jù)(IsClipBoardFormatAvailable)。如果有,也可以通過(guò)這個(gè)數(shù)字找到對(duì)應(yīng)數(shù)據(jù)在內(nèi)存中存儲(chǔ)的位置(GetClipboardData)。
對(duì)于標(biāo)準(zhǔn)格式,這個(gè)數(shù)字是固定的,可以通過(guò)VB6自帶的APIViewer查詢(xún)以CF_開(kāi)頭的常量來(lái)獲得,比如:
公共常數(shù)CF_TEXT = 1
公共常量CF_BITMAP = 2
公建友友資源網(wǎng)CF_METAFILEPICT = 3
公共常數(shù)CF_SYLK = 4
……
對(duì)于非標(biāo)準(zhǔn)格式,提供格式數(shù)據(jù)的應(yīng)用程序?yàn)榇烁袷蕉x一個(gè)名稱(chēng),然后將此名稱(chēng)傳遞給RegisterClipboardFormat函數(shù)。如果此名稱(chēng)已經(jīng)存在,函數(shù)將返回與此名稱(chēng)對(duì)應(yīng)的數(shù)字。如果該名稱(chēng)不存在,該函數(shù)將返回一個(gè)以前未使用過(guò)的數(shù)字,該數(shù)字可以一直使用到系統(tǒng)關(guān)閉并重新啟動(dòng)。
6)可監(jiān)控性有一組特殊的窗口可以持續(xù)監(jiān)控剪貼板中的數(shù)據(jù)變化。這組窗口叫做ClipboardViewer,它們組成的這個(gè)小圓圈叫做ClipBoardViewerChain。每當(dāng)剪貼板中的數(shù)據(jù)發(fā)生變化,Windows都會(huì)向消息鏈中的之一個(gè)窗口發(fā)送一個(gè)WM_DRAWCLIPBOARD消息,然后轉(zhuǎn)發(fā)給第二個(gè)…直到消息到達(dá)消息鏈中的最后一個(gè)窗口。同樣,當(dāng)消息鏈中的成員發(fā)生變化時(shí),每個(gè)窗口都會(huì)收到一條WM_CHANGECBCHAIN消息;通過(guò)SetClipboardViewer函數(shù),應(yīng)用程序可以將自己的窗口句柄告訴windows,從而注冊(cè)為剪貼板觀察者鏈的成員;通過(guò)ChangeClipboardChain函數(shù)yo-yo資源 *** ,應(yīng)用程序可以退出剪貼板觀察者鏈而不影響其后面的窗口繼續(xù)接收相關(guān)消息。
這是關(guān)于剪切板的一些知識(shí)的簡(jiǎn)單介紹,非常有利于大家掌握和利用這個(gè)知識(shí)點(diǎn)。事實(shí)上,不僅是對(duì)VBA的理解,其他語(yǔ)言也大體一致。因?yàn)槲覅⒖紮?quán)威聲明。
3剪貼板剪貼板一般操作
通過(guò)以上分析,我們可以得出以下結(jié)論:剪貼板可以用來(lái)存儲(chǔ)文本、圖像等數(shù)據(jù)。因?yàn)樗谢顒?dòng)進(jìn)程共享剪貼板,所以剪貼板可用于在這些活動(dòng)進(jìn)程之間傳輸數(shù)據(jù)。使用Clipboard對(duì)象可以輕松地訪問(wèn)剪貼板,并向其中讀寫(xiě)數(shù)據(jù)。我們可以使用以下操作:從剪貼板讀取數(shù)據(jù);確定剪貼板中存儲(chǔ)的文件類(lèi)型;清除剪貼板數(shù)據(jù);將數(shù)據(jù)寫(xiě)入剪貼板。
這一節(jié)知識(shí)點(diǎn)背:
1什么是剪貼板?
②剪貼板有什么特點(diǎn)?
③剪貼板操作有哪些?
積木的理念和內(nèi)涵:
在我的系列書(shū)中,我一直在強(qiáng)調(diào)“積木”的編程思想,這也是學(xué)習(xí)和使用VBA的主要方法,特別是對(duì)于專(zhuān)業(yè)人士來(lái)說(shuō),應(yīng)該采用這種方案。其主要內(nèi)涵:
1不要自己輸入所有代碼。你要做的就是把積木放在合適的位置,然后改正代碼。一定要復(fù)制它們,從你的構(gòu)建塊庫(kù)中復(fù)制,然后修改代碼,把你的時(shí)間用于高效思考。
建立自己的“積木庫(kù)”。平時(shí)在學(xué)習(xí)的過(guò)程中,把自己認(rèn)為有用的代碼放在一起,多積累,用的時(shí)候隨時(shí)可以帶。您的構(gòu)建基塊庫(kù)中的信息越多,您的編程思路就越寬廣。
VBA的應(yīng)用定義
VBA是利用Office實(shí)現(xiàn)個(gè)人小型辦公自動(dòng)化的有效手段(工具)。這是我對(duì)VBA的應(yīng)用定義。在新的辦公軟件取代OFFICE到來(lái)之前,誰(shuí)能把數(shù)據(jù)處理做到極致,誰(shuí)就是王道。其中,技能更高的是VBA!
記得20年前剛學(xué)VBA的時(shí)候,那時(shí)候資料很少,只能看著源碼自己琢磨。真的很難。二十年過(guò)去了,為了不讓研究VBA的朋友重復(fù)我之前的經(jīng)歷,我根據(jù)自己多年使用VBA的實(shí)踐經(jīng)驗(yàn),推出了六個(gè)專(zhuān)門(mén)的VBA教程:
之一套:VBA碼解法是VBA所有知識(shí)點(diǎn)的講解。共有147個(gè)教程,涵蓋了絕大多數(shù)的VBA知識(shí)點(diǎn)。提供的程序文件是不可多得的代碼寶庫(kù),是初學(xué)者和中級(jí)人員的必備教程。目前本教程提供的版本是修訂后的第二版,程序文件已經(jīng)通過(guò)了32位和64位OFFICE系統(tǒng)的測(cè)試。
第二套:VBA數(shù)據(jù)庫(kù)解決方案數(shù)據(jù)庫(kù)是專(zhuān)業(yè)的數(shù)據(jù)處理工具。教程詳細(xì)介紹了用ADO連接ACCDB和EXCEL的方法及其示例操作,適合中級(jí)人士學(xué)習(xí)。目前這套教程提供了修訂后的之一版教程,程序文件已經(jīng)通過(guò)了32位和64位OFFICE系統(tǒng)的測(cè)試。
第三套:VBA陣和字典解陣和字典是VBA的精髓。詞典是提高VBA電碼水平的有效手段,值得深入研究,是初、中級(jí)人員提高電碼水平的手段。目前本教程提供的版本是修改后的之一個(gè)版本,程序文件已經(jīng)通過(guò)了32位和64位OFFICE系統(tǒng)的測(cè)試。
第四套:VBA碼解視頻是針對(duì)初學(xué)者的視頻講解,可以快速入門(mén),更快掌握這項(xiàng)技能。本套教程是之一套教程(修訂版)的視頻講解。聽(tīng)元音更容易接受。本教程還將提供通過(guò)32位和64位OFFICE系統(tǒng)測(cè)試的附加程序文件。
第五集:《VBA》中的階級(jí)解讀與運(yùn)用。這是高級(jí)課程,講解的是階級(jí)的虛無(wú),肉體的規(guī)范。雖然使用類(lèi)是罕見(jiàn)的,仔細(xì)研究可以促進(jìn)我自己的VBA理論的完善。這套教程的領(lǐng)悟主要是讀者的領(lǐng)悟,是佛教哲學(xué)的一種。
第六套教程:《VBA信息采集與處理》,高級(jí)教程,涵蓋范圍更廣,實(shí)用性更強(qiáng),面向中高級(jí)人員。教程共有20個(gè)主題,包括:跨應(yīng)用信息獲取、隨機(jī)信息利用、電子郵件發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)捕獲、VBA延遲操作、剪貼板應(yīng)用、拆分功能擴(kuò)展、工作表信息與其他應(yīng)用的交互、FSO對(duì)象利用、工作表和文件夾信息獲取、圖形信息獲取和自定義工作表信息功能等。
以上教程的學(xué)習(xí)順序:1→3→2→6→5或4→3→2→6→5。提供的教程是一個(gè)巨大的代碼庫(kù),供讀者使用。如果有需要可以用微信:NZ9668。
學(xué)習(xí)VBA是一個(gè)過(guò)程,也需要經(jīng)歷一種枯燥的感覺(jué)。
“眾鳥(niǎo)高飛,孤云獨(dú)來(lái)。百看不厭,唯有敬亭山”。學(xué)習(xí)的過(guò)程也是修心的過(guò)程,修心養(yǎng)性。在代碼的世界里,心態(tài)平靜了,心情好了,身體自然就好了。當(dāng)心平靜時(shí),它是積極的,心中沒(méi)有那么多邪惡去認(rèn)識(shí)邪見(jiàn),所以沒(méi)有那么多妄想。利潤(rùn)是利己的。我的教程幫助了正在努力的朋友。
“水善萬(wàn)物,而不爭(zhēng)”,連綿密密,微則無(wú)聲,巨則洶涌。學(xué)習(xí)也是如此。知道自己需要什么。不要蜷縮在自己認(rèn)為是天堂的小世界里,等到暮年再發(fā)表自欺欺人的言論。我們要努力提升自己,用充滿(mǎn)活力的心態(tài)把握當(dāng)下,這才是進(jìn)取。越是有意義的事情,困難就越多。愿意永遠(yuǎn)決定,智慧決定成敗。無(wú)論遇到什么,都是一道風(fēng)景。看淡紛爭(zhēng),看淡得失。學(xué)小而無(wú)聲,用大則洶涌。“去修遠(yuǎn)的路很長(zhǎng),我會(huì)忽上忽下。”
每一次收獲都是成長(zhǎng)的記錄。怎么會(huì)沒(méi)有證據(jù)呢?正是這種堅(jiān)持,讓日出燦爛。把最后的話(huà)送給致力于VBA學(xué)習(xí)的朋友,讓悠游資源網(wǎng)感受一下學(xué)習(xí)過(guò)程的枯燥和堅(jiān)持:
浮云,無(wú)聲的碼字,
只有微風(fēng)驚起了夢(mèng)中的鳴鳥(niǎo)。
仰望星空,移動(dòng)北斗,
帶著過(guò)去。
陌生人,昏暗的燈光,
顧長(zhǎng)廷。
有多少VBA人,
在黑夜里,我低語(yǔ)著我的夢(mèng)想,卻盼望著清晨。
沒(méi)有證據(jù)!
分享我多年實(shí)際工作經(jīng)驗(yàn)的成果,享受這些對(duì)真正需要利用VBA的同路人有用的東西。回顧學(xué)習(xí)和使用VBA的生動(dòng)往事,我深受感動(dòng)。我想紀(jì)念這些話(huà)。
關(guān)鍵詞: 剪貼板



