Tips - WSH

【TOP】

Filter関数を使う
Filter関数は、配列から指定した文字を含む要素を取り出し、新しい配列を返します。
Filter( inputArray, value, [, include [, compare ]])

引数説明
inputArray抽出元の配列
value検索する文字列
include
(省略可能)
True → valueを含むものを抽出します。(規定値)
False → valueを含まないものを抽出します。
compare
(省略可能)
vbBinaryCompare → バイナリモード(0)で比較します。
vbTextCompare → テキストモード(1)で比較します。

※テキストモード比較では大文字と小文字は区別されません。バイナリモードで比較する必要があります。
Option Explicit ' 配列の表示関数 Sub DisplayArray(ary) Dim i If UBound(ary) < 0 Then WScript.Echo "該当データはありません。" Else For i=0 To UBound(ary) WScript.Echo ary(i) & vbCr Next End If WScript.Echo vbCr End Sub ' 検索対象の配列 Dim ArrayA(12) ArrayA(0) = "January" ArrayA(1) = "February" ArrayA(2) = "March" ArrayA(3) = "April" ArrayA(4) = "May" ArrayA(5) = "June" ArrayA(6) = "July" ArrayA(7) = "August" ArrayA(8) = "September" ArrayA(9) = "October" ArrayA(10) = "November" ArrayA(11) = "December" ' 「ber」を含む要素を取得 Dim ArrayB ArrayB = Filter(ArrayA, "ber", True, vbBinaryCompare) ' ArrayBの表示 WScript.Echo "「ber」を含むもの" DisplayArray(ArrayB) ' 「ber」を含まない要素を取得 Dim ArrayC ArrayC = Filter(ArrayA, "ber", False, vbBinaryCompare) ' ArrayCの表示 WScript.Echo "「ber」を含まないもの" DisplayArray(ArrayC) ' 「Ber」を含む要素を取得 Dim ArrayD ArrayD = Filter(ArrayA, "Ber", True, vbBinaryCompare) ' ArrayDの表示 WScript.Echo "「Ber」を含むもの" DisplayArray(ArrayD)
上記のコードを実行すると以下のようになります。
C:\WSH>cscript /nologo Filter.vbs 「ber」を含むもの September October November December 「ber」を含まないもの January February March April May June July August 「Ber」を含むもの 該当データはありません。
【戻る】