• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    VBS辦公自動化探索與應(yīng)用

    2022-07-23 06:36:12中國電子科技集團公司第二十九研究所羅小平
    電子世界 2022年1期
    關(guān)鍵詞:語句代碼程序

    中國電子科技集團公司第二十九研究所 羅 剛 羅小平 薛 磊

    日常生活、工作、學(xué)習(xí)中,計算機操作很簡單,但在操作過程中,很多事情在流程上都具有重復(fù)性。也許你每天啟動計算機第一件事都是登陸某個網(wǎng)站,打開常用的辦公軟件,也許需要對文件進行大量的重命名、復(fù)制、粘貼、刪除、數(shù)據(jù)處理等操作,重復(fù)、瑣碎,讓人容易產(chǎn)生疲勞,甚至出錯。

    有沒有一種簡單易學(xué)的編程語言,能代替人工實現(xiàn)自動化操作呢?VBS是一款非常適合的工具。

    1 基礎(chǔ)知識

    VBS是VBScript的簡寫,不同于其他高級語言,它是基于Visual Basic的腳本語言。不需要先去學(xué)習(xí)系統(tǒng)架構(gòu),復(fù)雜的語法、命令、算法等,用VBS編寫的代碼簡單、易學(xué)、高效,也不用編譯轉(zhuǎn)換成exe,源代碼可直接由Windows系統(tǒng)執(zhí)行,大部分高級語言能處理的,VBS基本都具備。VBS編輯工具為文本編輯器,最常見的就是記事本,編輯好后保存為*.vbs的文件,雙擊即可運行。

    1.1 變量

    用Dim來聲明變量,類型不需要聲明,對變量、函數(shù)、方法、對象的引用是也不區(qū)分大小寫的。需要注意的是,不允許在聲明變量的同時給變量賦值,多個變量用逗號隔開,注釋用分號標注,VBS中所有符號只能是英文符號。用Const定義常量,需在定義時賦值。如:

    Dim a,b ‘定義變量a和b

    Const c=10 ‘定義常量c,值為10

    1.2 輸入函數(shù)

    Inputbox,運行后彈出帶提示且可輸入內(nèi)容的對話框,返回值將傳遞給函數(shù)或變量。如:

    a=Inputbox(“提示”) ‘引號內(nèi)為提示消息

    1.3 輸出函數(shù)

    Msgbox,以對話框形式觀察輸出結(jié)果。如:

    Msgbox a ‘顯示a的值

    1.4 條件判斷語句

    VBS中條件判斷語句有If和Case兩種。

    If判斷語格式為If…Then…End If,若需對多個條件進行判斷,使用Else If … Then。If和Else If需要分別對應(yīng)一個End If結(jié)尾。但有兩個及以上的Else If時,只需要一個End If結(jié)尾。

    Case判斷語句:針對有很多種不同的判斷情況,Case比If語句更簡單方便。格式為Select Case變量名…Case 值…End Select

    1.5 循環(huán)控制語句

    無限循環(huán)語句,Do…loop。

    條件循環(huán),Do While…Loop,條件為true的時候執(zhí)行循環(huán)體,需要跳出循環(huán)用Exit do。與while相反的是until。

    計數(shù)循環(huán),F(xiàn)or i=n to m…Next,這是一種基于計數(shù)的循環(huán),是最常見的循環(huán)結(jié)構(gòu),經(jīng)常用來做單循環(huán)和嵌套循環(huán)。每一個for需要對應(yīng)一個next結(jié)尾。

    2 高級運用

    掌握了VBS基本知識后,我們可以進一步運用,編輯一些自動化腳本,如自動運行軟件、打開網(wǎng)頁、模擬鍵盤輸入,定時操作等,減少人工操作,為我們帶來便利。

    2.1 執(zhí)行程序

    VBS強大之處在于簡單的指令完成復(fù)雜操作。只需兩行簡潔的代碼便可啟動外部程序,如運行一個記事本程序:

    Set abc=CreateObject(“Wscript.shell”)

    abc.Run”notepad”

    Set是VBS指令,用于將對象引用賦給某個變量,abc是變量,abc.Run調(diào)用的就是Wscript.shell中的Run函數(shù)。值得注意的是,一般在程序結(jié)束前需要釋放變量所占內(nèi)存空間,如:Set abc=nothing。Notepad可替換成其他程序的絕對路徑,如abc.Run”D:QQQQ.exe”,也可以是網(wǎng)址或IP地址,如abc.Run”http://www.baidu.com”,多個任務(wù)需分行輸入指令,可一鍵打開所有需要用到的程序和網(wǎng)頁。

    2.2 模擬鍵盤操作

    Sendkeys:模擬鍵盤操作指令,妙用該指令簡化重復(fù)操作,可以向當前最前端窗口發(fā)送指令或字符串。如:

    Set abc=CreateObject(“Wscript.shell”)

    abc.Run”notepad”

    Wscript.sleep 1000‘等待1000ms

    abc.Sendkeys”123”‘往打開的記事本填入123

    Sendkeys引號內(nèi)的字符是分為基本鍵和特殊功能鍵,基本鍵按字符順序排列在一起即可,特殊功能鍵Shift用+、Ctrl用^、Alt用%代替。

    2.3 錯誤處理

    編程難免會遇到錯誤,VBS中提供了一條On error resume next的語句,意思是在該語句后的代碼運行出錯時,程序忽略當前語句或返回值錯誤并繼續(xù)執(zhí)行。若在某一段代碼后又想恢復(fù),則使用語句On error goto 0,意思是在該語句后的代碼運行出錯時,程序會停止運行并彈出錯誤提示框。

    2.4 時間函數(shù)

    獲取系統(tǒng)時間的函數(shù)為date和time,直接賦給變量即可。Date獲取當前年月日,time獲取當前時分秒。由于系統(tǒng)時間有很多種格式,編程時需要統(tǒng)一格式,那就用時間轉(zhuǎn)換函數(shù)Cdate,該函數(shù)可以根據(jù)電腦系統(tǒng)設(shè)置,把預(yù)設(shè)時間轉(zhuǎn)換成當前系統(tǒng)的格式,防止因格式不同而出錯。若系統(tǒng)時間格式為2000年1月1日,a=”2000/1/1” ‘若時間代碼寫為2000/1/1。

    b=Cdate(a) ‘將時間格式轉(zhuǎn)換成系統(tǒng)格式

    msgbox b

    通過換轉(zhuǎn)后變量b的值為2000年1月1日。

    2.5 時間比較函數(shù)

    我們的操作基本上都是基于時域進行的,以時間為基準,設(shè)計各種執(zhí)行方案,在編程時,那就需要用到時間比較函數(shù),根據(jù)當前時間是否到達預(yù)定時間來做判斷,時間比較函數(shù)為datediff,格式為變量=datediff("格式",時間1,時間2),意思是以一定的格式表示時間2減時間1的差值,格式可以是年月日時分秒周等,使用時非常方便。如:

    d=datediff(“n”,a,c) ‘比較預(yù)設(shè)時間和當前系統(tǒng)時間的差值,并以分鐘表示,n代表分鐘

    msgbox d ‘顯示預(yù)設(shè)時間與系統(tǒng)時間的差

    2.6 批量修改文件名

    日常工作中,經(jīng)常會遇到要修改幾十上百個,甚至更多文件的文件名,而這些文件名中又含有相同字符,若依次去重命名每一個文件,那將面臨巨大的工作量,而且是重復(fù)操作,會耗費大量的時間。下面是使用VBS編寫的批量修改文件名代碼,可以將有相同字符的替換成想要的結(jié)果,代碼為原創(chuàng),只用了最簡單的條件判斷if語句和計數(shù)for循環(huán)便可實現(xiàn)。

    3 Inputbox函數(shù)缺陷

    在運行批量修改文件名代碼時,如果不輸入文件路徑點確定,則會彈出”文件夾不存在”提示,對于Inputbox而言,只要彈出對話框,無論用戶是否輸入了值,點擊確定、取消或關(guān)閉按鈕中任意一個,該條語句就算成功執(zhí)行,然后繼續(xù)執(zhí)行下一條語句。

    假如用戶沒有輸入任何值點了確定,或者輸入0點確定,又或者點了取消或關(guān)閉按鈕,這三種情況的返回值都是0,若不加以區(qū)分,錯誤的結(jié)果會導(dǎo)致后續(xù)程序出錯。

    在現(xiàn)有文獻中,未找到相關(guān)解決辦法來識別用戶到底采取了哪種操作。經(jīng)長時間探索,總結(jié)出了一種可以通過判斷返回值的類型和長度,再利用系統(tǒng)錯誤處理,能準確判斷用戶的操作的方法,編程者可以根據(jù)判斷結(jié)果進行提示和決策腳本后續(xù)處理方式。代碼如下:

    Len為計算表達式的長度,cstr轉(zhuǎn)換成字符型,cint轉(zhuǎn)換成整型。當用戶未輸入任何值并點確定時,a為空,cint(a)轉(zhuǎn)換會出錯,但我們使用了On error resume next,忽略了該錯誤,程序繼續(xù)運行,這樣就能利用“錯誤”處理來進行分辨。當用戶點了取消或關(guān)閉時,a返回值為0,linta為1。

    VBS簡單易學(xué),實用性強,功能強大,巧用內(nèi)置函數(shù),用簡單的代碼、基本語句就可完成繁瑣、重復(fù)的操作,在日常生活辦公中能實現(xiàn)自動處理、模擬輸入、定時操作、批處理等各種自動化,解放人力,提高工作效率。

    猜你喜歡
    語句代碼程序
    重點:語句銜接
    試論我國未決羈押程序的立法完善
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    “程序猿”的生活什么樣
    精彩語句
    英國與歐盟正式啟動“離婚”程序程序
    創(chuàng)衛(wèi)暗訪程序有待改進
    湘西| 建始县| 泽普县| 滁州市| 宜丰县| 伽师县| 万盛区| 遂平县| 江油市| 江津市| 思南县| 甘洛县| 天全县| 黄平县| 息烽县| 柳江县| 卫辉市| 永春县| 寿宁县| 慈溪市| 收藏| 驻马店市| 竹溪县| 建瓯市| 襄汾县| 鄂托克前旗| 刚察县| 沙湾县| 石渠县| 乡城县| 灵川县| 黔东| 临江市| 大丰市| 辉南县| 康马县| 双柏县| 米脂县| 宁陕县| 尉犁县| 淅川县|