FC2ブログ

駆け出しエンジニアの気ままにブログ

このブログでは、駆け出しエンジニアの私が興味をもったトピックについて不定期に発信しています。

スポンサーサイト  

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

category: スポンサー広告

tb: --   cm: --

スクリプト初心者のためのVBS「超」入門(2)  

今回はVBS第2回目ということで、VBSを活用していく上で重要な処理を2つほど紹介していていきます。

vbs_fig


今回扱う2つとは、
1)テキストファイルへ文字列を書き出す(出力する)ための処理
2)他のExeファイルをVBSから実行するための処理
です。


前回紹介した、IEの操作とあわせることで、

A)Webブラウザから(ニュースやWikipediaなどの)情報を取得し、
B)取得した情報(文字列)をテキストファイルに書き出し、
C)SofTalkなどを使って書き出したテキストを自動読み上げする。

・・・というようなスクリプトも書けるようになります!!


『ゆっくりにニュースを読んでもらう』などが実現できるわけです!!
※直近では、これ実現することを目標にします。


ちなみにVBS(Visual Basic Script)とは・・・
Windowsで動くとても便利なスクリプトです。
例えば、会議室の予約確認やデータのダウンロードなど、日常業務には決まりきった作業がつきものですよね。
こんな時、VBSを組んでおくことで作業を完全に自動化できちゃいます。
しかも、
・ソフトのインストールやセットアップが不要で、
・Windowsが入っていればできますので(基本的に)
誰でもすぐに出来るようになります。

尚、VBSを実行するときの手順は、以下の通りです。
 手順1)新規テキストドキュメントを作成します。メモ帳でOK。
 手順2)スクリプトをコピペします。
 '(ココから)
 '――すくりぷと――
 '(ココまで)
 手順3)上書き保存した後、ファイル名を"test.vbs"とします。拡張子を”.vbs”にすればOKです。
 手順4)作成したファイルのアイコンをダブルクリックして起動してみてください。
 ※再編集する場合は、”プログラムから開く”を選択してメモ帳などで編集します。

ということで・・・、早速、テキストファイルへ書き出す部分からつくってみましょう。

1)テキストファイルへ文字列を書き出す(出力する)ための処理・・・(prog002.vbs)

例)test.txtファイルを作成後、文字列を入力するスクリプト
 '(ココから)
 '変数など明示的に表現することを宣言します。
 Option Explicit
 '変数を宣言します。
 Dim objFSO      ' FileSystemObject
 Dim objFile     ' ファイル書き込み用
 'ファイルシステムにアクセスするためのオブジェクトを作成します。
 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
 'IF文(1)objFSOのSetに失敗した場合の条件分岐です。
 If Err.Number = 0 Then
     'テキストファイルオブジェクトを作成します。ファイル名をtest.txtとします。
     Set objFile = objFSO.OpenTextFile("test.txt", 2, True)
     'IF文(2)objFileのSetに失敗した場合の条件分岐です。
     If Err.Number = 0 Then
 '------------------------------
 '----------ココから入力部分------------
         'オブジェクトに文字列を書き込みます。
         objFile.Write("駆け出しエンジニアの気ままにブログ")
         'VBScriptにおける改行コードです。
         objFile.Write(vbCrLf)
         objFile.Write("ゆっくりしていってね")
         objFile.Close
 '----------ココからまで入力部分----------
 '------------------------------
      'IF文(1)のエラー処理をします。
     Else
         WScript.Echo "ファイルオープンエラー: " & Err.Description
     End If
 'IF文(2)のエラー処理をします。
 Else
     WScript.Echo "エラー: " & Err.Description
 End If
 'オブジェクトを破棄します。
 Set objFile = Nothing
 Set objFSO = Nothing
 '(ココまで)

どうでしょう?動くようであれば、

ファイル名を変えてみたり、

入力部分を変えてみるなどなど・・・いろいろ試してみて下さい。

IE操作などと組み合わせることでいろいろなデータの自動出力が可能になります。


続いて・・・

2)他のExeファイルをVBSから実行するための処理(prog003.vbs)

例)他の回でDLしたSofTalk.exeをVBSから動かすスクリプト

前処理として、softalkフォルダをCドライブの直下に置いて下さい(c:\softalk)。
※フォルダ指定の際にフルパスで指定している.exeファイルを書き換えれば、他フォルダに格納していても構いません。

 '(ココから)
 '変数など明示的に表現することを宣言します。
 Option Explicit
 '変数を宣言します。
 Dim WshShell    'WindosShellスクリプト用
 Dim objExec     'exeファイル実行用
 'Windows Shellスクリプトオブジェクトを作成します。
 Set WshShell = WScript.CreateObject("WScript.Shell")
 'Exsecオブジェクトを作成します。今回は、SofTalkをフルパスで指定。
 Set objExec = WshShell.Exec("C:\softalk\SofTalk.exe C:\softalk\readme.txt")
 '実行したオブジェクトのステータスが実行中(=0)のうちはLoopする。
 Do While objExec.Status = 0
    WScript.Sleep 200
 Loop
 'オブジェクトを破棄します。
 Set objExec = Nothing
 Set WshShell = Nothing
 '(ココまで)

どうでしょう?動きましたか?

動かない場合やSofTalkをDLしていない場合などは、

WshShell.Exec()部分の"C:\softalk\SofTalk.exe C:\softalk\readme.txt"部分を、

"calc.exe"などの簡単な実行ファイルに書き換えてみて試して下さい。

また、できた人はWshShell.Exec()部の括弧内をいろいろと変えて実行してみてください。


・・・ということで

今回は、VBSを活用していく上で重要な処理を2つ紹介しました。
1)テキストファイルへ文字列を書き出す(出力する)ための処理
2)他のExeファイルをVBSから実行するための処理

簡単に楽しくできるので、一度やってみてください。意外と楽しいですよ。^^

ということで、VBSの第2回目は出力処理とファイル実行処理の簡単なスクリプトを紹介しました。

次回は、『ゆっくりにニュースを読んでもらう』処理にチャレンジしてみたいと思います。

今後も自分でつくった簡単なVBSをちょくちょく紹介していきますので、お付き合下さい。

今回も最後まで読んでくださったかた。本当にありがとうございます。


(参考)
・WSHを始めよう―@IT
・VBScript/JScriptプログラミング&Tips for WSH - cafe de VBS

最速攻略 VBScriptサンプル大全集最速攻略 VBScriptサンプル大全集
(2006/03/28)
結城 圭介

商品詳細を見る




(2011年12月21日)

 


スポンサーサイト

category: VBS

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kazufumi1984engineer.blog.fc2.com/tb.php/18-70cd3b58
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。