VBScript の使い方

| コメント(0) | トラックバック(0)

Windowsが入っているパソコンならほとんど、「無料で」、「そのまま」、「だれでも」VBScript というプログラム言語を使うことができます。

この言語、メモ帳でつらつらと書いていきますので、新たに操作方法を覚える必要もあまりありません。さらに、もともとはVisual Basic という分かりやすい言語でできています。Excel のマクロをかじった人はそれと同じですからやりやすいでしょう。

(注: Visual Basic, Visual Basic for Application (エクセルマクロ)にあって、VBSで使えない機能はいくつかあります。 Windows API, Dir, Strconvなど)

今回は、実際にVBScript の使い方を見てみましょう。

①メモ帳を開きます

②1行目に
 msgbox "hello world"
 と書きます

メモ帳に書く

③「ファイル」- 「名前をつけて保存」を選択し
 ファイルの種類を 「すべてのファイル」に変更

すべてのファイル

④ファイル名に好きな名前をつけ、好きな場所に保存します。
 今回は「Sample.vbs」にしました。名前は何でも構いませんが、拡張子は「.vbs」とします。

以上で、作成は終わりです。
実際に使う時は、保存した「Sample.vbs」のアイコンをダブルクリックするだけです。

アイコン

いかがでしょうか。
非常に簡単です。

後は、様々な用途に応用が可能です。
上記、msgbox "hello world" ではなく、以下のように書けばそれぞれいろいろなプログラムを作ることができます。

◆Yahoo に自動でログイン
Dim IE 'As Object
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True
IE.Navigate ("https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp")
While IE.ReadyState <> 4
 While IE.Busy = True
 Wend
Wend
IE.Document.all("username").Value = "??ID??"
IE.Document.all("passwd").Value = "??PW??"
IE.Document.Forms(0).Submit
Set IE = Nothing

'※??ID??と、??PW?? にそれぞれYahooのIDとパスワードを入れてください。
'Yahooでなくても、毎日開くものがあるなら、プログラムを作ったほうが楽になります。

◆その日更新したファイルを新しいフォルダにバックアップ
On Error Resume Next
Dim objfso 'As Object
Dim pathname 'As Object
Dim strdate, prevdate 'As String
Dim foldate 'As String
Dim s, ss, sss, ssss, sssss 'As Object
Dim f, ff, fff, ffff, fffff 'As Object
Dim i 'As Integer
strdate = Cstr(Date)
Set objfso = CreateObject("scripting.filesystemobject")
pathname = objfso.Getparentfoldername(wscript.scriptfullname)
For i = 10 To 20
 prevdate = Replace(CStr(Date - i), "/", "")
 If objfso.folderexists(prevdate) = True Then
  objfso.deletefolder(prevdate)
 End If
Next
foldate = Replace(strdate, "/", "")
If objfso.folderexists(foldate) = False Then
 objfso.createfolder(foldate)
End If
Set s = objfso.getfolder(pathname)
For Each f In s.Files
 If InStr(CStr(f.datelastmodified), strdate) = 1 Then
  Call f.Copy(".\" & foldate & "\", True)
 End If
Next
For Each ss In s.subfolders
 For Each ff In ss.Files
  If InStr(CStr(ff.datelastmodified), strdate) = 1 Then
   Call ff.Copy(".\" & foldate & "\", True)
  End If
 Next
 For Each sss In ss.subfolders
  For Each fff In sss.Files
   If InStr(CStr(fff.datelastmodified), strdate) = 1 Then
    Call fff.Copy(".\" & foldate & "\", True)
   End If
   Next
  For Each ssss In sss.subfolders
   For Each ffff In ssss.Files
    If InStr(CStr(ffff.datelastmodified), strdate) = 1 Then
     Call ffff.Copy(".\" & foldate & "\", True)
    End If
   Next
   For Each sssss In ssss.subfolders
    For Each fffff In sssss.Files
     If InStr(CStr(fffff.datelastmodified), strdate) = 1 Then
      Call fffff.Copy(".\" & foldate & "\", True)
     End If
    Next
   Next
  Next
 Next
Next
Set objfso = Nothing
Set s = Nothing
Msgbox "終了"

'帰りがけに実行することにより、その日更新があったファイルを保存しておくことができます。
'また、10日経過した場合フォルダごと消去されますから、ファイルが増えすぎることもありません。
'※但し、20090823など、数字8桁並んだフォルダがあると、消去される場合があります。

◆開いているExcelファイルのマクロを実行
EXCELRUN
Sub EXCELRUN
On Error Resume Next
Dim ExcelApp 'As Object
Set ExcelApp = GetObject(, "Excel.Application")
If IsEmpty(ExcelApp) Then
 Exit Sub
End If
ExcelApp.DisplayAlerts = False
Set ExcelApp = GetObject("??FILEPATH??")
ExcelApp.Application.Run "??MACRO??"
Set ExcelApp = Nothing
End Sub

'※??FILEPATH??は対象となるExcelファイルのパス(D:\Book1.xlsなど)、??MACRO??にはマクロ名を入れてください。

◆ワードを起動し、テキストを入力
With CreateObject ("Word.Application")
 .Visible = True
 .Documents.Add
 .ActiveDocument.Content.Text = "??TEXT??" 
End With

'※??TEXT??は入力したいテキストを入れて下さい

◆パワーポイントを起動
With CreateObject ("PowerPoint.Application")
 .Visible = True
 .Presentations.Add
End With

トラックバック(0)

トラックバックURL: http://lsconsul.com/mt/mt-tb.cgi/66

コメントする