指定した間隔でカラーコードを作成する関数(再帰的プログラム)のサンプル VBScript [VBScript]
各桁が3,9,Fの16進数で組み合わされたカラーコードを作成し配列で出力する関数の例です。Sub(サブルーチン)で作成されるのが多い再帰的プログラムをFunctionで作成してみました。
concatARY関数は、2つの1次元配列を連結する独自関数です。
#333333
#333399
#3333FF
#339933
#339999
#3399FF
#33FF33
#33FF99
#33FFFF
#993333
#993399
#9933FF
#999933
#999999
#9999FF
#99FF33
#99FF99
#99FFFF
#FF3333
#FF3399
#FF33FF
#FF9933
#FF9999
#FF99FF
#FFFF33
#FFFF99
#FFFFFF
2つの1次元配列をの結合する関数です。
・inARY1:結合する配列1
・inARY2:結合する配列2
・outARY:戻り値。結合した配列
指定した間隔でカラーコードを作成する関数(再帰的プログラム)のサンプル VBScript
スポンサーリンク
サンプルプログラム
Function hex39F(cmpS,c)
Dim numS
Dim num6, d
ReDim num6(0) '配列の宣言
Dim m
m = -1
For d = 3 To 15 Step 6
cmpS(c) = hex(d) & hex(d) '数字を16進数に変換する
If c < UBound(cmpS) Then 'まだ3回ネストを繰り返していなければ
numS = hex39F(cmpS,c+1)
'd objLOG.WriteLine(Join(numS,";"))
If UBound(num6) = 0 Then '最初の出力であれば
num6 = numS '連結処理なし→配列を代入する
Else
num6 = concatARY(num6,numS) '2回目以降は配列を連結していく
End If
Else
If cmpS(0) <> cmpS(2) Then '前後2桁のコードが同じものは弾く
m = m + 1
ReDim Preserve num6(m) '配列の大きさを1つずつ大きくしていく
num6(m) = "#"& Join(cmpS,"")
'd objLOG.WriteLine(m &":"& Join(cmpS,""))
End If
End If
Next
hex39F = num6
End Function
concatARY関数は、2つの1次元配列を連結する独自関数です。
出力結果
#333333
#333399
#3333FF
#339933
#339999
#3399FF
#33FF33
#33FF99
#33FFFF
#993333
#993399
#9933FF
#999933
#999999
#9999FF
#99FF33
#99FF99
#99FFFF
#FF3333
#FF3399
#FF33FF
#FF9933
#FF9999
#FF99FF
#FFFF33
#FFFF99
#FFFFFF
スポンサーリンク
concatARY関数
2つの1次元配列をの結合する関数です。
・inARY1:結合する配列1
・inARY2:結合する配列2
・outARY:戻り値。結合した配列
Function concatARY(inARY1,inARY2)
Dim UB1, UB2
UB1 = UBound(inARY1)
UB2 = UBound(inARY2)
Dim outARY
ReDim outARY(UB1+UB2+1)
Dim a
For a = 0 To UB1
outARY(a) = inARY1(a)
Next
For a = 0 To UB2
outARY(UB1+1+a) = inARY2(a)
Next
concatARY = outARY
End Function
スポンサーリンク
関連記事
指定した間隔でカラーコードを作成する関数(再帰的プログラム)のサンプル VBScript
JavaScriptで別ページの一部の要素を読み込む方法 [テスト]
下記のJavaScriptを実行すると、同一サーバーにある'vbs-re0001'というページにある、最初のh3ヘッダー「連続する数字を取得する」を取得し、このページでタイトルを表示する。
【実行した結果】
【実行した結果】