Hello World WScript.Echo "Hello World" 文法 行末にセミコロンは不要。 コメントアウト シングルクォーテーション以降はコメント扱いになる。 複数行コメント【/* コメント */】は対応していない。 マルチステートメント コロン【:】で複数命令を1行で記述できる。 コードの途中改行 行末にアンダーバー【_】を入れると、次の行がコードの続きとして扱われる。 変数名、関数名は大文字小文字の区別なし。 オブジェクトへの参照を代入する。 Set 文字リテラル 文字列はダブルクォーテーションで囲む。 数字をダブルクォーテーションで囲めば、文字列として扱われる。 文字の連結はアンパサント【&】を使う。 "hoge" & "hoge" 型宣言 なし、基本Variant型。 変数宣言と同時に初期化できない。 【Dim strTes="Hello World"】はエラーになる。 マルチステートメントを使う。【Dim strTes : strTes="Hello World"】 関数宣言 サブプロシージャ Sub TestSub(arg1,arg2) strSample =arg1 & arg2 WScript.Echo strSample End Sub 関数プロシージャ Function TestFunc(arg1,arg2) TestFunc=arg1 & arg2 End Function サブプロシージャと関数プロシージャの違い サブプロシージャ戻り値なし。 関数プロシージャ戻り値あり。 関数呼び出し サブプロシージャ TestSub "aaa","bbb" 括弧をつけるとエラーになる。 Result = TestFunc("aaa","bbb") 括弧をつけないとエラーになる。 変数のスコープ プロシージャ内部で変数を宣言した場合、プロシージャ内でローカル変数となる。 プロシージャ外部で変数を宣言した場合、スクリプトレベル変数と言うグローバル変数となる。 プロシージャ内で参照可能なので、変数名が被らないように注意が必要。 main()を宣言しスクリプトレベル変数を宣言しないようにする。 Call main() Sub main() '処理を記述する。 End Sub 条件分岐 If文 If (intMonth < 1 Or 12 < intMonth) Then WScript.Quit(0) ElseIf 条件式 Then 実行文 End If For文 For i = 1 To 10 Step 1 hoge=hoge & i Next GotoはSub又はFunctionの呼び出しで代用する。 WScript.Quit(0)がEndに相当。 演算子 論理積 And 論理和 Or ファイル入出力 テキストファイルを1行ずつ読み込む。 Dim strFilePath : strFilePath = "FileName.txt" '相対パス、絶対パスともに可。 Dim objFileSystem : Set objFileSystem = CreateObject("Scripting.FileSystemObject") Dim objReadFile : Set objReadFile = objFileSystem.OpenTextFile(strFilePath) Do Until ( objFile.AtEndOfStream ) WScript.Echo objReadFile.ReadLine Loop objFile.Close ファイル書き込み Dim strFilePath : strFilePath = "FileName.txt" '相対パス、絶対パスともに可。 Dim objFileSystem : Set objFileSystem = CreateObject("Scripting.FileSystemObject") Dim objWriteFile : Set objWriteFile = objFileSystem.CreateTextFile(strFilePath, True) objWriteFile.WriteLine("hoge hoge") objWriteFile.Close ファイルの実行 DOSプロンプトの実行 Dim objShell : Set objShell = CreateObject("WScript.Shell") objShell.Run "cmd.exe /c dir > DirResult.txt",0 0 非表示、1 通常ウィンドウ、2 最小化、3 最大化 プログラムの起動 Dim objShell : Set objShell = CreateObject("WScript.Shell") objShell.Run "C:\Windows\System32\notepad.exe" その他 改行コード Chr(13) & Chr(10) 文字列切り出し Mid(切り出し対象,何文字目から,何文字取り出す) 一文字目は0でなく、1で表わされる。 雑テクニック YYYYMMDDHHmmの文字列作成 Mid(Now(),1,4) & Mid(Now(),6,2) & Mid(Now(),9,2) & Mid(Now(),12,2) & Mid(Now(),15,2) 先月の月を返す Month(DateSerial(Year(Date), Month(Date), 0)) 月の最終日付を返す Day(DateSerial(intYear, intMonth + 1, 1) - 1) キャンセルボタンを押したときの処理。 intMonth = InputBox("月を入力してください",,Month(DateSerial(Year(Date), Month(Date), 0))) IF IsEmpty(intMonth) Then WScript.Quit(0) End If 課題 On Error Resume Nextのエレガントな使い方。 参考 http://msdn.microsoft.com/ja-jp/library/cc392489.aspx
2011年6月5日日曜日
VBScript カンペ
作業にVBSを使ったので、調べた内容をメモ。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿