Windows自動処理のためのWSHプログラミングガイド

WSH共通モジュール保管庫

[Windows自動処理のためのWSHプログラミングガイド]のサポートページです

[Windows自動処理のためのWSHプログラミングガイド]のサポートページ

当サイトは、[Windows自動処理のためのWSHプログラミングガイド] (ソシム刊) のサポートページです。
当サイトでは、同著のPart4に掲載されている共通モジュールを、すべてダウンロードすることができます。
公開している共通モジュールは、同著出版後も日々更新しています。
同著を所有していなくても当サイトの共通モジュールはすべて自由にご利用いただくことができます。
ただし、当サイトからダウンロードできる共通モジュールの詳しい使い方、およびVBScriptを本格的に学習するのであれば、まずは同著をお買い求めください。

Windows自動処理のためのWSHプログラミングガイド

コンテンツについて

共通モジュールダウンロード

モジュール名 モジュールの内容 仕様書
ダウンロード
モジュール
ダウンロード
FileCommon ファイルのコピー・移動・削除・存在チェックファイル名の変更など、ファイル操作に関する共通モジュール
TextFile テキストファイルの読み込み・書き込み・作成など、テキストファイル操作に関する共通モジュール
ExcelManager Excelを開いて読み込んだり、印刷の実行や内容保存、指定したマクロの実行など、Excel操作に関する共通モジュール
WordManager Wordを開いて読み込んだり、印刷の実行や内容保存、指定したマクロの実行など、Word操作に関する共通モジュール
OutlookManager Outlookの起動・メールの送信・Outlookパブリックフォルダへの投稿など、Outlook操作に関する共通モジュール
LogFile 実行ログのファイル出力や、その他のテキストファイル出力など、ログファイル操作に関する共通モジュール
Date 日付から曜日を取得したり、日付のフォーマットを変更するなど、日付に関する共通モジュール
Math 文字列から数値への強制変換や、数値の切り上げ・切り捨て・四捨五入など、算術に関する共通モジュール
IEManager InternetExplorerブラウザの起動や、テキストの取得、HTMLの取得など、InternetExplorer操作に関する共通モジュール
Win32SystemSet Windowsのシャットダウン・再起動・ログオフ・プロセスの破棄など、Windows操作に関する共通モジュール
DBConnect SQL ServerやODBC接続、SQLの実行と結果出力など、データベース接続に関する共通モジュール
NetworkManager ネットワークドライブの割り当てや切断、共有ドライブ名の指定など、ネットワーク操作に関する共通モジュール

VBScriptの自動テスト

著者が開発した、VBScriptの自動テスト用モジュールを紹介します。
使い方は同梱されているマニュアルに記載してありますが、よくわからない場合は下記アドレスまでメールでご連絡ください。
ダウンロードは、 こちら

64Bit OSでのWSH環境について

Windows 64Bit OSでもWSHの実行環境は存在しますが、本書籍の一部のスクリプトに関しては、一部初期状態では動作しない場合があります。
具体的には、Microsoft Access Driverが64Bit環境では初期状態でインストールされていないため、別途64Bit環境で動作するMicrosoft Access Driverをインストールする必要があります。
もしくは、64Bit OSでも32Bit環境でスクリプトを実行させます。
後者を、もう少し詳しく説明しましょう。
例えば、以下のスクリプトをご覧ください。

Option Explicit

Dim cn
Set cn = CreateObject("ADODB.Connection")

Dim filepath
filepath = "C:\TEMP\sample.mdb"

Dim sCn
sCn = "Driver={Microsoft Access Driver (*.mdb)};" & " DBQ=" & filePath & ";"
cn.ConnectionString = sCn

On Error Resume Next

cn.Open
If (Err.Number <> 0) Then
  MsgBox CStr(Err.Number) & ":" & Err.Description
  Err.Clear
Else
  MsgBox "接続成功!"
  cn.Close()
End If

On Error GoTo 0
          

このスクリプトを64Bit環境で実行すると、以下のエラーが出てしまいます。



このエラーが表示される原因は、64Bit環境にMicrosoft Access Driverがインストールされていないためです。
次に、次のスクリプトを実行してみてください。

Option Explicit

'↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
'32Bit wscript.exeでスクリプトを実行し直します
If (WScript.Arguments.Count = 0) Then
  Dim shell
  Set shell = CreateObject("Shell.Application")
  shell.ShellExecute "C:\Windows\SysWOW64\wscript.exe", """" & WScript.ScriptFullName & """ 32bit", "", ""

  WScript.Quit
End If
'↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

Dim cn
Set cn = CreateObject("ADODB.Connection")

Dim filepath
filepath = "C:\TEMP\sample.mdb"

Dim sCn
sCn = "Driver={Microsoft Access Driver (*.mdb)};" & " DBQ=" & filePath & ";"
cn.ConnectionString = sCn

On Error Resume Next

cn.Open
If (Err.Number <> 0) Then
  MsgBox CStr(Err.Number) & ":" & Err.Description
  Err.Clear
Else
  MsgBox "接続成功!"
  cn.Close()
End If

On Error GoTo 0
          

2つめのスクリプトは、64Bit環境でのみ、動作します。
32Bit環境ではエラーが発生していまいますので、ご注意ください。
7行目が少々わかりづらいかと思いますので、もう少し詳しく説明します。
64BitのWindows OSの場合、Windows OSのシステムに関する重要な「System」フォルダというものを2つ持っています。
1つは、64Bit環境の「C:\Windows\System」フォルダ、そしてもう1つが32Bit環境の「C:\Windows\SysWOW64」フォルダです。
VBScriptをダブルクリックして実行した場合、64BitのWindows OSでは、64Bit環境の「C:\Windows\System」フォルダに存在する「WScript.exe」が起動します。
この64Bit環境で実行されたWScript.exeは、64Bit環境の設定を参照するため、Accessに接続するためのドライバも64Bit環境から探しに行きます。
しかし、実際には64Bit環境にはAccessに接続するためのドライバがインストールされていないため、エラーが発生します。
そこで、32Bit環境でVBScriptを実行させるために追加したロジックが、上記の部分というわけです。
このロジックでは、スクリプトの実行時に実行パラメータが指定されていない場合、64Bit環境で実行されたものであると判断し、このスクリプト自体を32Bit環境である「C:\Windows\SysWOW64」フォルダの「WScript.exe」で起動し直しています。
実行パラメータとは、スクリプトの実行時にしている処理分岐のためのパラメータです。
スクリプトのパスの後ろに、"32bit"という文字列が付加されているがわかります。
この"32Bit"という文字列自体、まったく意味はありません。
"a"でも"b"でもOKです。
ただ、スクリプトの実行時にパラメータが指定されているということのみ、判断できればよいです。
実行パラメータは、パラメータとして引き渡す文字列自体に意味を持たせ、そのパラメータによって処理を分岐させるのが通常ですが、このスクリプトの場合、パラメータがあるかどうかのみしかみていません。

ご意見・ご要望

当サイトに関するご意見やご要望は、以下のメールアドレスにて受け付けております。

ikarashi[at]ikachi.org
※[at]を@に置き換えてください。


フリープログラミング団体 いかちソフトウェア
自由で楽しいプログラミングを追及する任意団体。

SQLリファレンス
実践的なSQLのコマンドリファレンス。

デスクトップサポート
Microsoft社のWindowsOSやOffice製品に関するデスクトップサポートページ。

Virtual Travel
Ajaxを利用した世界遺産をめぐる仮想旅行。

もしもDS無料ツール
「もしもドロップシッピング」のための無料ツールやテンプレートの紹介。

Copyright 2009- IKACHI All rights reserved.