4.WSH(Windows Scripting Host)

 Windows98以降、WSH(Windows Scripting Host)が使用可能になっています。WindowsNTのOption PackにもWSHが入っているので、PWS(Personal Web Server)インストール時に選択することができます。

 単体でもマイクロソフトのサイトからダウンロード可能なので、Windows95でも使用可能です。

 下記はMicrosoft Accsessの管理台帳にある資産のチェックを行い、7日前と3日前に通知を行うプログラムです。詳しくは今後説明していく予定すが、データベース処理にSQL文を使用しています。

-------------------------------------------------------------------------------------------------------------------
	Dim db, rec, strText, strTextbuf, Blat
	atablebuf = Array("table1","table2","table3","table4")

	CRLF = Chr(13) & Chr(10)
	sdate = Date+7
	pdate = Date+3

	L_Message_MsgBox_Message_Text = "1週間前と3日前の管理対象資産の一覧を通知します。"
	L_Message_MsgBox_Title_Text = "資産管理台帳"

	Set Blat=WScript.CreateObject("Blat.Send.1")
	Call Message()

	strText = ""
     For k=0 to 3
	Call Readdata(atablebuf(k))
	strText = strText+strTextbuf
     Next
      If strText="" Then
	strText = "本日は何もありません。"
      Else
	Call Blatj(strText)
      End If
        Call show_str(strText)

Sub Readdata(atable)
	'ADODB.Connectionの作成
	set db = WScript.CreateObject("ADODB.Connection")
	'データベースを開く
	db.Open "TABLE"
	'SQLを実行

	set rec = db.Execute("SELECT id, meishou, model, shisanno, nextdate FROM "& atable &" WHERE nextdate=#"& sdate &"# or nextdate=#"& pdate &"#")

	i=0
	strTextbuf = "File Name = "& atable & CRLF

	'取得した全レコードを表示
	do while not rec.EOF
	
	iddb=rec.Fields("id")
	meishoudb=rec.Fields("meishou")
	modeldb=rec.Fields("model")
	shisannodb=rec.Fields("shisanno")
	nextdatedb=rec.Fields("nextdate")

	i=i+1
	strTextbuf = strTextbuf & iddb & Chr(9) & nextdatedb & Chr(9) & meishoudb & Chr(9) & modeldb & Chr(9) & shisannodb & Chr(9) & CRLF

	'レコードを次に進める
	rec.MoveNext
	loop
	'レコードセットのクローズ
	rec.Close
	'データベースのクローズ
	db.Close

      If i=0 Then
	strTextbuf = ""
      Else
	strTextbuf = strTextbuf & CRLF
      End If
End Sub

Sub show_str(strText)
	MsgBox strText, vbInformation, L_Message_MsgBox_Title_Text
End Sub

Sub Message()
	Dim intDoIt

	intDoIt =  MsgBox(L_Message_MsgBox_Message_Text, vbOKCancel + vbInformation, L_Message_MsgBox_Title_Text )
      If intDoIt = vbCancel Then
	WScript.Quit
      End If
End Sub

Sub Blatj(strText)
	Blat.IsError = False

	Blat.To = "to1@xxx.yyyy.co.jp, to2@xxx.yyyy.co.jp, to3@xxx.yyyy.co.jp"
	Blat.Cc = "cc@xxx.yyyy.co.jp"
	Blat.From = "from@xxx.yyyy.co.jp"
	Blat.Server = "mail@xxx.yyyy.co.jp"
	Blat.Subject = "資産管理情報"
	Blat.Body = "管理対象資産情報です。"+CRLF+"(1週間前と3日前に通知しています。)"+CRLF+CRLF+strText
	Blat.Send
End Sub
-------------------------------------------------------------------------------------------------------------------
 ダイアログメッセージと同時にメールによる通知も行っており、メール送出にはBlatJというソフトを使用しています。実際に動作させるにはこのプログラムをタスクスケジューラに登録します。ここではCOM版のBlatJを使用しています。

 BlatJは株式会社ピーデーの川俣 晶氏により日本語化されたもので、ここから入手できます。尚、その中ではWndows NTで説明されていますが、Windows 9Xでも使用可能です。

 WSHの中で使用しているプログラムはVBScriptですが、JavaScriptで記述することも出来ます。その場合は拡張子vbsをjsに変えます。

 WScriptはGUIで実行しますが、cscript.exeを用いてDOSプロンプトからも実行できます。

 Outlookを使用している場合は、メール送出にOutlookのVBAを使用できます。第2、第3のMELLISSA作者を作りたくないのでここでは詳しく記述しませんが、Microsoft Outlook VB Refernceに個々のコマンドが書かれていますので、興味の有る方はそちらを見て下さい。どうしてもと言う方はメールにてご相談下さい。


戻る Copyright(c) 1999-2003 Kokuwa. All Rights Reserved.