(for Internet Explorer)
← ▼ ▲
↑
Prompt
→ Prompt コマンド
Sub Prompt( TCHAR* Desc, HANDLE* out_Obj );
VBScript が実行できるプロンプトを開始します。
ソース
→ System.vbs
これまでにグローバル変数に設定していた値を参照することもできます。
Prompt 関数を呼び出した関数のローカル変数は参照できません。
参考
← ▼ ▲
Play
Play "sample.mp3"
Sub Play( Path as string )
音楽ファイルや効果音ファイルを鳴らします。
【引数】
Path
.wav, .mp3 などのファイルパス
(src)
→ 音を鳴らす (VBScript)
動画ファイルを指定すると、音声だけが流れます。
Play env( "%windir%\Media\tada.wav" )
鳴らし始めると、すぐに Play 関数から戻り、音声が流れながらスクリプトの続きを実行します。
WaitForSound
を使えば、音声が終わるまで待つことができます。
スクリプトを終了すると、音声は止まります。
サンプル
ファイル：
vbslib.vbs
テスト
関連
→ T_Sound.vbs # [T_Sound]
→ WaitForSound
→ SetVolume
← ▼ ▲
WaitForSound
Play "sample.mp3"
WaitForSound Empty
Sub WaitForSound( Timeout_msec as integer )
で再生した音声が終わるまで待ちます。
【引数】
Timeout_msec
タイムアウト（ミリ秒）、または Empty （タイムアウトなし）
(src)
Play
タイムアウトになったら、音声は停止します。
音声が終わるまで待つ
5秒たっても音声が終わらなかったら止める
Play "sample.mp3"
WaitForSound 5000
Play "sample.mp3"
WaitForSound 0
すぐに音声を止める
サンプル
サンプル
サンプル
Empty
5000
0
vbslib.vbs
ファイル：
テスト
→ T_Sound.vbs # [T_Sound]
関連
→ Play
← ▼ ▲
SetVolume
Sub SetVolume( Volume as integer )
音量を設定します。 0 が最小、100 が最大。
【引数】
Volume
音量。デフォルトは 100
(src)
SetVolume 100
関連
サンプル
→ Play
vbslib.vbs
ファイル：
テスト
→ T_Sound.vbs # [T_Sound]
← ▼ ▲
SystemSound
SystemSound ".Default"
Sub SystemSound( Sound as string )
コントロールパネルに設定されている効果音を鳴らします。
【引数】
Sound
効果音の種類（下記）
(src)
→ システムの警告音を鳴らす (VBScript)
"SystemAsterisk"
メッセージ（情報）
".Default"
一般の警告音
メッセージ（警告）
"SystemExclamation"
システムエラー
"SystemHand"
メッセージ（問い合わせ）
"SystemQuestion"
Windowsの起動
"SystemStart"
Windowsの終了
"SystemExit"
Windowsログオン
"WindowsLogon"
"WindowsLogoff"
Windowsログオフ
"DeviceConnect"
デバイスの接続
"DeviceDisconnect"
デバイスの切断
"Navigating"
ナビゲーションの開始
（フォルダやハイパーリンクをクリックしたときの音）
Play
音声の止め方や音量の調整は、
と同じです。
WaitForSound
しなくても、すぐに音声は停止しません。
スクリプトを終了時に鳴らしても、数秒の効果音であれば、
サンプル
関連
テスト
→ T_Sound.vbs # [T_Sound]
← ▼ ▲
GetTextFromClipboard
Function GetTextFromClipboard() as string
クリップボードにあるテキストを返します。
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
(src)
クリップボードにテキストが無ければ、E_BadType エラーになります。
ファイル：
vbslib.vbs
使用するには、vbslib フォルダーに、
vbslib_helper.exe
が必要です。
← ▼ ▲
GetPathOfClipboardText
Function GetPathOfClipboardText() as string
クリップボードにあるテキストをファイルに出力して、そのパスを返します。
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
(src)
クリップボードにテキストが無ければ、E_BadType エラーになります。
ファイル：
vbslib.vbs
使用するには、vbslib フォルダーに、
vbslib_helper.exe
が必要です。
サンプル
Set g = g_VBS_Lib
echo "Enter のみ：クリップボードの内容を入力とします。"
path = InputPath( "path>", g.CheckFileExists or g.CheckFolderExists or _
g.UseArgument1 or g.AllowEnterOnly )
is_clipboard = False
If path = "" Then path = GetPathOfClipboardText() : is_clipboard = True
If is_clipboard Then del path
クリップボードの内容が入ったファイルが不要になったら削除してください。
← ▼ ▲
SetTextToClipboard
Sub SetTextToClipboard( Text as string )
クリップボードにテキストをコピーします。
(src)
→ T_Clipboard_Manually.vbs # [T_GetTextFromClipboard]
テスト
ファイル：
vbslib.vbs
使用するには、vbslib フォルダーに、
vbslib_helper.exe
が必要です。
← ▼ ▲
データ、変数、定数、文字列、配列、日時
→ ArrayClass クラス
→ ArrayDictionary クラス
→ QuickSort
→ QuickSort_fromDic
→ CInt2
→ ShakerSort_fromDic
→ ShakerSort
辞書に入っているデータをクイックソートします。
配列をクイックソートします。安定ソートではありません。
辞書に入っているデータをシェーカーソートします。
配列をシェーカーソートします。安定ソートです。
文字列を数値に変換します。
配列を扱いやすくするクラスです。
標準の Dictionary の Item を、配列にしたクラスです。
→ CreateGuid
GUID を生成します。
→ StringStream クラス
ワイルドカードにマッチするかどうか判定します。
[ テスト ]
その他
並べ替え、ソート
集合（コレクション）
関連
→ 文字列 (VBS)
→ 変数、Empty、型、配列 (VBS)
→ StrMatchKey クラス
文字列を TextStream と同じようにアクセスします。
オブジェクト
→ get_Object
→ get_ObjectFromFile
→ get_ObjectsFromFile
→ include_objs
→ new_X
静的オブジェクトを取得します。
スクリプトファイルから静的オブジェクトを取得します。
スクリプトファイルから静的オブジェクトを一覧します。
静的オブジェクト・スクリプトファイルをインクルードします。
文字列で指定した名前のクラスのオブジェクトを生成します。
→ 環境変数
配列 （Array）
→ IsSameArray
配列のすべての要素が等しいか判定します。
→ DicToArr
Dictionary を配列に変換します。
→ AddArrElem
配列の要素を追加コピーします。
→ Dic_addNewObject
辞書、ハッシュ （Dictionary）
→ DicItem
→ GetDicItem
オブジェクトを生成して、辞書に追加します。
登録されていないときも、新規に登録しない辞書参照。
Empty でもオブジェクトでも取得できる辞書参照。
→ Dict
辞書を生成します。
→ Dic_addElem
→ Dic_add
→ Dic_sub
辞書の要素を設定します。
辞書を加算します。
辞書を減算します。
→ MeltCmdLine
コマンドラインの１項目を取り出し、通常の文字列に戻す。
→ ArrayToNameOnlyClassArray
→ ArrayFromCSV
→ ArrayFromCSV_Int
配列を、NameOnlyClass の配列に変換します。
CSV 形式の１行を解析して、配列に格納する。
CSV 形式の１行を解析して、数値の配列に格納する。
→ 定数、g_VBS_Lib
定数
構造化された定数
他にもあります。左のツリーから選択してください。
← ▼ ▲
g_VBS_Lib
vbslib で定義されている定数と一部の変数は、g_VBS_Lib オブジェクトのプロパティになっています。
これは、なるべくグローバル・スコープにおいてシンボルが重複しないようにするためです。
次のように、ローカル変数 c を使ってアクセスすることができます。
Sub FuncA()
Set c = g_VBS_Lib
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
End Sub
g_VBS_Lib
CaseSensitive
定数の内容については、左のツリーからサブ・ツリーを参照してください。
(src)
参考
→ get_ModuleConsts : クラスの定数 (vbsool)
← ▼ ▲
CaseSensitive (g_VBS_Lib)
Dim g_VBS_Lib:CaseSensitive as integer
２つの英文字の文字列比較において、大文字・小文字を区別すること
CaseSensitive が指定できる引数に、CaseSensitive を指定しなかったときは、
大文字と小文字を同じ文字であるとして、文字列比較を行います。
参考
→ StrCompOption
サンプル：
Set c = g_VBS_Lib
If StrComp( "ABC", "abc", StrCompOption( c.CaseSensitive ) ) = 0 Then ...
If StrCompLastOf( "ABC", "BC", c.CaseSensitive ) = 0 Then ...
← ▼ ▲
WholeWord (g_VBS_Lib)
Dim g_VBS_Lib:WholeWord as integer
文字列の検索において、単語全体がマッチするものだけヒットさせます。
（単語単位検索、完全一致）
参考
→ InStrEx
← ▼ ▲
LastNextPos (g_VBS_Lib)
Dim g_VBS_Lib:LastNextPos as integer
検索した結果を、ヒットした位置の次の位置にします。
参考
→ InStrEx
ABCDE の中で C を検索したら、D の位置を検索した結果にします。
ABCDE の中で BCD を検索したら、E の位置を検索した結果にします。
← ▼ ▲
g_VBS_Lib_System
vbslib の System.vbs で定義される
g_VBS_Lib
。
← ▼ ▲
NotExistFileMD5 (g_VBS_Lib_System)
Dim g_VBS_Lib_System:NotExistFileMD5 as string
ファイルが存在しないことを明示的に示すときのハッシュ値。
値は、0が32桁の文字列です。
NotExistFileMD5 = "00000000000000000000000000000000"
→ System.vbs
ソース
→ 空のフォルダーの MD5
関連
← ▼ ▲
ArrayClass
Dim a : Set a = new ArrayClass
a.Add 1
echo a(0)
echo "count = " & a.Count
VBScript 標準の配列 （プロパティ）
.ToEmpty
要素をすべて削除する
.Add
要素を最後に追加する
.Push
要素を最後に追加する
.Pop
最後の要素を返し、配列から要素を削除する
.Count
要素数を返す
.Echo
サンプル
メンバー
すべての要素を表示する
Dim item
For Each item In a.Items
echo item
Next
基本的な使い方：
For 文で使う：
配列を扱いやすくするクラスです。
要素は、オブジェクトでもそれ以外でも格納できます。
配列番号以外でも要素にアクセスできます。
a が ArrayClass オブジェクト
.Copy
すべての要素をコピーする
.Value
配列のすべての要素を文字列にする
配列の要素。 配列番号。 （デフォルト・プロパティ）
.Item
関連
→ 配列、Array、ReDim Preserve (VBScript)
→ T_Arr.vbs # [T_ArrClass]
テスト
.Items
While 文で使う：
Dim a : Set a = new ArrayClass
Dim iter : Set iter = a.NewIterator()
While iter.HasNext()
echo iter.GetNext()
WEnd
a が ArrayClass オブジェクト
iter は、ArrayClassIterator オブジェクト
→ ArrayClassIterator クラス
→ ArraySpeed.vbs
性能比較
→ ItemFunc (ArrayClass)
Dim arr : Set arr = new ArrayClass : arr.AddElems Array( 1, 2, 3 )
関連
→ BinaryArray クラス
→ 配列要素を追加する速度
→ vbslib.vbs
ソース
← ▼ ▲
new_ArrayClass
Function new_ArrayClass( InitialValues as array of variant ) as ArrayClass
配列から ArrayClass のオブジェクトを生成します。
【引数】
InitialValues
ArrayClass のオブジェクトの初期値の配列
返り値
ArrayClass のオブジェクト
ファイル：
vbslib.vbs
(src)
サンプル
Assert new_ArrayClass( Array( 1, 2, 3 ) ).CSV = "1,2,3"
サンプル
Set arr = new_ArrayClass( Array( 1, 2, 3 ) )
Assert arr(0) = 1
Assert arr(1) = 2
Assert arr(2) = 3
new_ArrayClass
[ 親: ArrayClass クラス ]
← ▼ ▲
Item、配列番号 (ArrayClass)
Default Property ArrayClass::Item( i as integer )
配列番号を使って、配列の要素を参照します。 （デフォルト・プロパティ）
【引数】
i
配列の要素の番号。 先頭は 0
Dim a : Set a = new ArrayClass
a.Add 1
echo a(0) '// a.Item(0) と同じ
サンプル：
a(0)
オブジェクトを Set するときは、次のように記述してください。
Set a(0) = new ClassA
→ ItemFunc (ArrayClass)
関連
ItemFunc プロパティに関数を登録すると、引数 i に文字列などを指定できるようになります。
[ 親: ArrayClass クラス ]
(src)
i 引数が配列の要素数以上のときは、エラーになります。
← ▼ ▲
ItemFunc (ArrayClass)
Dim ArrayClass::ItemFunc as Function( Items as Array, Name as variant ) as variant
配列の要素を取得する関数。 Item プロパティにアクセスすると呼ばれる関数。
関連
→ Item (ArrayClass)
→ Item デフォルト・プロパティ : 動的定義メンバー (vbsool)
Dim arr : Set arr = new ArrayClass
Set arr.ItemFunc = GetRef( "ClassA_getItem" )
Set obj = arr( "Name" )
Function ClassA_getItem( Items, Name )
Dim s
If IsNumeric( Name ) Then
Set ClassA_getItem = Items( Name )
Else
For Each s In Items
If s.Name = Name Then Set ClassA_getItem = s : Exit Function
Next
End If
End Function
サンプル：
Item デフォルト・プロパティにアクセスするときに、要素を決定する方法をカスタマイズできます。
→ T_Arr_Target # [T_ArrayCustom]
テスト
→ NameOnlyClass
配列番号以外の数値型で要素を識別するとき
[ 親: ArrayClass クラス ]
← ▼ ▲
Items (ArrayClass)
Dim ArrayClass::Items as array of variant
ArrayClass クラスがラップしている配列です。
要素は、オブジェクトでもそれ以外でも格納できます。
(src)
Dim arr : Set arr = new ArrayClass
Dim item
For Each item In arr.Items
echo item
Next
For 文で使う：
ソート関数に渡すときは、Items ではなく、ArrayClass オブジェクトを渡してください。
Dim arr : Set arr = new ArrayClass
:
ShakerSort
ShakerSort arr, 1, arr.UBound_, GetRef("CmpFunc1"), Empty
arr
arr
Items
[ 親: ArrayClass クラス ]
← ▼ ▲
m_Array (ArrayClass)
(src)
→ Items (ArrayClass)
Items と同じです。
廃止される予定です。
← ▼ ▲
ReDim_ (ArrayClass)
Sub ArrayClass::ReDim_( UBound as integer )
配列の要素数を変更します。 ReDim Preserve と同じです。
【引数】
UBound
新しい配列の最大要素番号
(src)
ReDim の末尾にアンダースコアが付いています。
（ReDim は予約語であるため。）
[ 親: ArrayClass クラス ]
← ▼ ▲
Add (ArrayClass)
Sub ArrayClass::Add( Elem as variant )
配列の最後に要素を追加します。
【引数】
Elem
配列に追加する要素（オブジェクト、またはそれ以外）
ArrayClass::Push と同じです。
(src)
Elem に配列を指定すると、ArrayClass の中の１つの要素の中に Elem 配列を追加します。
ArrayClass の中に複数の要素を追加するときは、AddElem を使ってください。
→ AddElems (ArrayClass)
関連
[ 親: ArrayClass クラス ]
← ▼ ▲
AddElems (ArrayClass)
Sub ArrayClass::AddElems( SrcArr as variant or array or ArrayClass )
配列のすべての要素を追加コピーします。
これまで入っていた要素の後に追加します。
サンプル：
Dim a
Set a = New ArrayClass
a.Add 1
a.AddElems Array( 2, 3 )
'// a は、{ 1, 2, 3 }
AddElems
→ AddArrElem
(src)
→ Add (ArrayClass)
関連
[ 親: ArrayClass クラス ]
← ▼ ▲
AddNewObject (ArrayClass)
Function ArrayClass::AddNewObject( ClassName as string, ObjectName as string ) as ClassName
指定した名前を付けたオブジェクトを生成して、配列の最後に追加します。
【引数】
ClassName
クラス名
ObjectName
オブジェクトの名前
返り値
Name プロパティが ObjectName のオブジェクト
サンプル：
Set objects = new ArrayClass
Set o = objects.AddNewObject( "ClassA", "ObjectA" )
Class ClassA
Public Name
End Class
Function new_ClassA()
Set new_ClassA = new ClassA
End Function
すでに同じ名前のオブジェクトが配列にあっても、オブジェクトを生成します。
(src)
関連
→ Dic_addNewObject
テスト
→ [T_AddNewObj]
new_X
内部で
を使っているので、たとえば、ClassA に対して new_ClassA 関数の定義が必要です。
ClassName に指定したクラスに、Name プロパティ、またはメンバー変数が必要です。
[ 親: ArrayClass クラス ]
←
↓