IEを起動し、googleを開く例です。
Option Explicit
Dim OBJ_Shell
Set OBJ_Shell = CreateObject("Shell.Application")
OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"
Scriptのダウンロードは こちら です。
ITエンジニアの雑記
IEを起動し、googleを開く例です。
Option Explicit
Dim OBJ_Shell
Set OBJ_Shell = CreateObject("Shell.Application")
OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"
Scriptのダウンロードは こちら です。
Option Explicit
Dim OBJ_FSO
Dim OBJ_Browser
Dim STR_ProgramName
Set OBJ_FSO = CreateObject("Scripting.FileSystemObject")
For Each OBJ_Browser In CreateObject("Shell.Application").Windows
STR_ProgramName = OBJ_FSO.GetFileName(OBJ_Browser.FullName)
If LCase(STR_ProgramName) = "iexplore.exe" Then
WScript.Echo OBJ_Browser.LocationURL
End If
Next
Scriptのダウンロードは こちら です。
指定したフォルダのファイル一覧を取得します。再帰処理でサブフォルダ内のファイル名も取得します。
Option Explicit
Private Function GET_FileList(STR_Path)
Dim OBJ_FSO
Dim OBJ_Folder
Dim COL_SubFolder
Dim COL_File
Set OBJ_FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set OBJ_Folder = OBJ_FSO.GetFolder(STR_Path)
For Each COL_File In OBJ_Folder.Files
WScript.Echo COL_File.Name
Next
For Each COL_SubFolder In OBJ_Folder.SubFolders
GET_FileList(COL_SubFolder)
Next
End Function
Scriptのダウンロードは こちら です。
以前は、UTCタイムフォーマットから”YYYYMMDDHHMMSS”に変換するスクリプトでした。
今度は、逆です。YYYYMMDDやHHMMSSを取得するスクリプトの使用しています。
Option Explicit
Dim STR_Computer
Dim OBJ_SWbemServices
Dim OBJ_TimeZone
Dim COL_TimeZone
Dim STR_Bias
Dim DTMCurrentDate
Dim DTMTargetDate
Dim DTMMonth
Dim DTMDay
STR_Computer = "."
Set OBJ_SWbemServices = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & STR_Computer & "\root\cimv2")
Set COL_TimeZone = OBJ_SWbemServices.ExecQuery("SELECT * FROM Win32_TimeZone")
For Each OBJ_TimeZone In COL_TimeZone
STR_Bias = OBJ_TimeZone.Bias
Next
DTMTargetDate = Get_YYYYMMDD(0) & Get_HHMMSS(0)
DTMTargetDate = DTMTargetDate & ".000000"
DTMTargetDate = DTMTargetDate & CStr(STR_Bias)
WScript.Echo DTMTargetDate
Private Function Get_YYYYMMDD(ByVal STR_Flag)
Dim STR_Temp
Dim STR_YYYYMMDD
If Not IsNumeric(STR_Flag) Then Exit Function End If
STR_Temp = Year(Now)
If Len(STR_Temp) = 2 Then STR_Temp = "20" & STR_Temp End If
If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If
STR_YYYYMMDD = STR_Temp
STR_Temp = Month(Now())
If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If
If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If
STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp
STR_Temp = Day(Now())
If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If
STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp
GET_YYYYMMDD = STR_YYYYMMDD
End Function
Private Function GET_HHMMSS(ByVal STR_Flag)
Dim STR_Temp
Dim STR_HHMMSS
If Not IsNumeric(STR_Flag) Then Exit Function End If
STR_Temp = Hour(Now())
If Len(Hour(Now())) = 1 Then STR_Temp = "0" & Hour(Now())
If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If
STR_HHMMSS = STR_Temp
STR_Temp = Minute(Now())
If Len(Minute(Now())) = 1 Then STR_Temp = "0" & Minute(Now())
If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If
STR_HHMMSS = STR_HHMMSS & STR_Temp
STR_Temp = Second(Now())
If Len(Second(Now())) = 1 Then STR_Temp = "0" & Second(Now())
STR_HHMMSS = STR_HHMMSS & STR_Temp
GET_HHMMSS = STR_HHMMSS
End Function
Scriptのダウンロードは こちら です。
今度は、HHMMDDを取得します。
引数も同様に、1以上の場合は”HH:MM:SS”を、0の場合は”HHMMSS”です。
Private Function GET_HHMMSS(ByVal STR_Flag) Dim STR_Temp Dim STR_HHMMSS If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Hour(Now()) If Len(Hour(Now())) = 1 Then STR_Temp = "0" & Hour(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_Temp STR_Temp = Minute(Now()) If Len(Minute(Now())) = 1 Then STR_Temp = "0" & Minute(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_HHMMSS & STR_Temp STR_Temp = Second(Now()) If Len(Second(Now())) = 1 Then STR_Temp = "0" & Second(Now()) STR_HHMMSS = STR_HHMMSS & STR_Temp GET_HHMMSS = STR_HHMMSS End Function
Scriptのダウンロードは こちら です。
WSHのプログラミングで、年月日(YYYYMMDD)や時間(HHMMSS)をとるのって、以外と手間だったりします。
ファイル名やタイムスタンプを表示するときに私は以下の関数を利用しています。
まずは、年月日からです。フラグで1以上の値を渡すと”YYYY/MM/DD”になり、0の場合は、”YYYYMMDD”になります。
Private Function Get_YYYYMMDD(ByVal STR_Flag) Dim STR_Temp Dim STR_YYYYMMDD If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Year(Now) If Len(STR_Temp) = 2 Then STR_Temp = "20" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_Temp STR_Temp = Month(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp STR_Temp = Day(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp GET_YYYYMMDD = STR_YYYYMMDD End Function
Scriptのダウンロードは こちら です。
プログラムの中で、UTC(Universal Time Coordinate)を扱うことがあります。
UTCは、こんな↓データで、一目見てもいつなのか分かりにくいです。
“20081011000000.000000+540″
これを”YYYYMMDD HH:MM:SS” 形式に変換するWSHです。
(jscriptだと関数がありますが、vbsだとプログラムで生成するしかないと思います)
Option Explicit Function ConvertUTCToDate(STR_DateTime) ConvertUTCToDate = CDate(Mid(STR_DateTime, 5, 2) & "/" & _ Mid(STR_DateTime, 7, 2) & "/" & Left(STR_DateTime, 4) & " " & _ Mid(STR_DateTime, 9, 2) & ":" & _ Mid(STR_DateTime, 11, 2) & ":" & _ Mid(STR_DateTime, 13, 2)) End Function
Scriptのダウンロードは こちら です。