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



コメントする