(for Internet Explorer)
← ▼ ▲
↑
SendKeys
→ キーボード・コードを送る
(src)
参考
Sub SendKeys( WindowTitle as string, KeyCords as string, LateTime as integer )
キーボード入力をエミュレーションして自動的にキー操作をします。
【引数】
WindowTitle
KeyCords
"" または、キーボード・コードを送るウィンドウのタイトル(下記)
キーボード・コード (下記)
LateTime
0 または、キーボード・コードを送るまでの時間（ミリ秒）
WindowTitle 引数に指定した文字列が、ウィンドウのタイトルに、前方一致、または、
後方一致したウィンドウに対して、キー操作をします。
SendKeys "メモ帳", "%FS", 200
サンプル：
WindowTitle 引数
KeyCords 引数
制御キーの入力は、次のように指定します。
[Alt]+[F], [S]
"%FS"
[Ctrl]+[C]
"^C"
[Enter]
"{ENTER}"
キー入力
KeyCords 引数
[Esc]
"{ESC}"
"{TAB}"
[Tab]
Alt キーを押しながら F、離して S
説明
シフトキーを押しながら連続して、X、P
"+XP"
シフトキーを押しながら、X、離して、P
[Shift]+[X], [P]
[Shift]+[X], [Shift]+[P]
"+(XP)"
[+]
"{+}"
→ SendKeys メソッド (Web)
その他のキー
[{]
"{{}"
[[]
"{[}"
ファイル：
vbslib.vbs
テスト
→ T_UI1_Manual.vbs # SendKeys
LateTime 引数
キーコードを送る前に待つ時間を指定します。
直前の処理がウィンドウを開く処理など、キーコードを送る対象が準備できるまでに
時間がかかるときに指定してください。
→ WshShell::SendKeys
Alt キー + [F] + [S] …… 保存
← ▼ ▲
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()
Dim c : 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
サンプル：
Dim c : 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 の位置を検索した結果にします。
← ▼ ▲
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 文で使う：
配列を扱いやすくするクラスです。
要素は、オブジェクトでもそれ以外でも格納できます。
配列番号以外でも要素にアクセスできます。
(src)
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 クラス
← ▼ ▲
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)
← ▼ ▲
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
内部で
を使っているので、new_ClassA 関数の定義が必要です。
ClassName に指定したクラスに、Name プロパティ、またはメンバー変数が必要です。
[ 親: ArrayClass クラス ]
← ▼ ▲
AddCSV (ArrayClass)
Sub ArrayClass::AddCSV( CSV as string, Type_ as integer )
配列の最後に複数の要素を追加します。
(src)
【引数】
CSV
追加する要素を CSV（文字列）にしたもの
Type_
追加する要素の型、例：vbInteger
サンプル：
関連
→ CSV (ArrayClass)
Dim a : Set a = new ArrayClass
a.AddCSV "12, 34", vbInteger
[ 親: ArrayClass クラス ]
→ (CSV) ArrayFromCSV, ArrayFromCSV_Int
← ▼ ▲
Push (ArrayClass)
Sub ArrayClass::Push( Elem as variant )
配列の最後に要素を追加します。
【引数】
Elem
配列に追加する要素（オブジェクト、またはそれ以外）
ArrayClass::Add と同じです。
(src)
[ 親: ArrayClass クラス ]
← ▼ ▲
Pop (ArrayClass)
Function ArrayClass::Pop() as variant
配列の最後の要素を返し、その要素を配列から除外します。
【引数】
返り値
配列の最後の要素（オブジェクト、またはそれ以外）
(src)
[ 親: ArrayClass クラス ]
←
↓