VBSを使ってちょっとパソコンを便利にしよう。

ソースコード
Tips

皆様VBSをご存知ですか?Windowsを使う上でちょっと便利なる小技です。

VBSはVisualBasicScriptの略でメモ帳やテキストエディタでコードを書けば、そのままWindowsで動かせるという便利なツールなのです。WindowsではVBSの実行エンジンが初期状態で備わっているために、何も設定をしなくともVBSはプログラムとして動きます。

プログラム初心者の方が入門として使うのもありだと思います。

メモ帳でコードを書けば動く。この利便性は他のなにものにも代えがたいWindowsならではの仕組みです。linuxですと大抵の場合perlスクリプトがデフォルトで動きますし、シェルスクリプトも使えますが、WindowsですとVBSですとかWSH関連がそれを代用してくれます。

プログラミング言語は一つ覚えると他の言語もなんとなくこんな感じかなと習熟できるので、覚えてみると楽しいですよ。

ただし最近ではVBSは古いといわれていてマイクロソフトはパワーシェルに移行したがっているようです。マイクロソフトはパワーシェルをVBSやWSHの代替手段として据えていてVBSでできることはパワーシェルでもできるようです。ですがWindowsの初期設定ではパワーシェルは実行にひと手間必要なので、VBSの手軽さは一段上ですかね。とはいっても最初に設定してしまえばちゃんとパワーシェルも動くようなので、素直にマイクロソフトの戦略に乗ってみるのも手かもしれません。

VBSの基本。

先にも述べましたがVBSはテキストエディタでコードを直書きして使えます。メモ帳にコードを書いて拡張子をvbsにして保存してみましょう。

拡張子を変更する。拡張子とは

この保存したファイルをダブルクリックすればコードを実行できます。プログラミング体験としては非常に簡単なので優秀です。自分の書いたコードが動く喜びを味わってみてください。

例えば以下のコードをコピペで良いですから、メモ帳にシンプルに一行書いてみてください。保存が完了したらダブルクリックして実行します。

msgbox “こんにちは。プログラミング”

いかがですが。プログラム入門として一番最初にやることの多いテキストを出力するだけのハローワールドプログラムが実行できます。

プログラムは基本1行に1命令を書いていって上から下に順に実行されます。途中順序を変えるための制御構造がありそれらで繰り返し実行や、実行するしないを制御します。

またVBSではOLEやActiveX(COM)を使ったプログラム連携もできるのでこれを使わない手はないです。ActiveXとはWindowsですでに完成しているプログラムを呼び出せる仕組みでExcelやWord、その他の便利なプログラムをVBSから呼び出して使えるという仕組みになっています。

ActiveXを使ってみよう。

ActiveXを使えば既存のアプリケーションをオートパイロットのように操縦することができます。例えばIEを起動してURLを読み込んだり、その読み込んだページのソースを使って何かを解析したり、今はやりのAIにデータとして食わせたりそういう事ができます。以下にIEを使ったサンプルソースを置いておきます。起動するなりしていろいろためしてみましょう。

なおシングルクォートで始まる文はVBSではコメントとして扱われます。プログラミング言語では、プログラムの解説など自分の好きな文章をコメントとして付与する事ができます。なお実行時には無視されて実行されます。

    'Internet Explorerのオートパイロットの例

    '変数の宣言
    Dim IEobj

    'オブジェクトの作成
    Set IEobj = CreateObject("InternetExplorer.Application")

    'バックグラウンドで実行しているIEを表示させます。
    IEobj.Visible = True 

    'ヤフーを読み込みます。
    IEobj.Navigate2 "http://yahoo.co.jp/"

   'ページの読み込み状態と同期 読み込まれるまで待ちます。
    Do While IEobj.Busy = True Or IEobj.readyState <> 4
        WScript.Sleep 100        
    Loop
    
    '検索ボックスに検索ワードを入れる p が Dom Elementの名前
    With IEobj.document      
    .getElementsByName("p")(0).Value = "テストワード"          
    End With
	
	'フォームのデータをSubmitするための前準備(フォームエレメントを取得)
    Set oForm = IEobj.document.getElementsByName("sf1")(0)

	'FormをSubmitする。HTMLソースよりSubmit形式はHTTP GETメソッドのようです。
    oForm.submit()

解凍してメモ帳で開き、その後実行してみましょう。IE_Auto.zip(DL)

このコードはヤフーの仕様変更により最後のほうが動かなくなる可能性があります。そのたびにメンテナンスできないので、動かなくなった場合はIEを操縦できるんだという感覚だけ感じてください。(最初のほうのコードはIEがサポートされる限り動くはずなので・・)似たような操作をエクセルで行うことも可能です。マクロのような自動操縦を体感できます。

VBSのこれからとまとめ

いかがでしょうか。VBSといっても侮れないと思います。様々なアプリと連携できるため用途は様々に使えます。ただし古い技術なのでこれから覚えるなら.NET Framework+PowerShellを使ったほうが今どきといえるようです。ただアプリの自動操縦となるとCOMやActiveXを使った作業となる場合が殆どと思われます。Frameworkはあくまでもプログラムの部品としてつかえるのでしょうから、COMの代わりにはならなさそうです。結局PowerShellでやるにしてもCOMを使うことになるとなるとVBSでやっても一緒かもしれません。

VBSはこれからも使われていくのではないかと私は思います。Microsoftの方針でWindowsの初期設定が変わればどうなるかはもちろんわかりません。現時点では何も操作する必要のない利便性がかなりのものなのでまだまだ現役かなと思います。

アプリアイコンのイメージ
Tips
ジョジョジョイーン縮小革命で画像を扱いやすく!

皆様こんにちは。今日は画像をブログなどで使う際に扱いやすいサイズに調整する話です。 画像サイズはWEBで使う場合には適切なサイズというものがあります。あまり画像サイズが大きすぎると無駄にデータ通信を使うためにあまり勝手が良くないのです。 大体長辺が1000px以下くらいまで抑えても問題ない場合が多いです。画像のピクセル数、サイズを下げるメリットとしてはファイ …

本山積みの図
Tips
パソコンで本を作ろう。フォトブックや絵本、その他小冊子などの製本方法

皆様こんにちは。今日はパソコンを使った本の作成方法についてご紹介いたします。 パソコンの活用方法色々ありますね。中でも本を作るなんていうのはちょっとワクワクする使い方ではないでしょうか?製本方法にも色々ありますが、パソコンで簡単にできるのは小冊子などを作るための中綴じ(なかとじ)です。その他の製本もできるかもしれませんが中綴じはとても簡単にできるのでおすすめ …

年賀状の図
Tips
年賀状を簡単に。年賀状作成ツールや素材集など

皆様年賀状は作成されていますか?仕事柄お客様に年賀状を送らないといけない方や個人で作るのを楽しみにしている方。また来るのを楽しみにしている方など様々でしょう。年賀状は実は作る側も楽しかったりします。もちろん人によりけりでめんどくさいとしか思わない方もいらっしゃるかもしれません。 めんどくさい方にはお手軽に、作るのを楽しみにしている方にはより楽しくより美しくそ …