まず、アレイ
1、一次元アレイ
2、二次元アレイ
(A)選択ソート:最大(昇順ソートを最小に選択される)、この配列要素の配列要素の前の値の交換値をソートする配列の各配列要素を選択します。
アレイがある:(1)= 3、 (2)2、(3)= 7、(4)= 9、=(5)= 5
for i as long,j as long,n as long
for i=1 to 4
for j=n to 5
if a(i) < a(j) then
n=a(i)
a(i)=a(j)
a(j)=n
end if
next j
next i
(B)バブルソート:ソート、アレイ内の2つの隣接アレイ素子のそれぞれの値を比較し、大きい方より小さく前列。
アレイがある:(1)= 3、 (2)2、(3)= 7、(4)= 9、=(5)= 5
for i=1 to 4
for j=0 to 3
if a(j) < a(j+1) then
n=a(j)
a(j)=a(j+1)
a(j)=n
end if
next j
next i
(C)二分法を選別:アレイが非常に小さい場合には、上記の方法の使用が可能である;しかし、より大きなアレイ、比較は多くの時間を無駄にします。順(昇順または降順など)のアレイ素子アレイの値のバイナリサーチ配列要素を使用することができます。二分法は、アレイの中央の最初の配列要素に比べて照会されるすべての値は、半分の前に見つけることであるか、比較に基づいて、次に最初の半分又は途中後クエリ半分と配列要素の値を取るし続けます条件を満たすために、クエリの結果になるまでのサイクルを比較。
dim myarray(100) as integer '声明数组
private sub command_click()
dim low,high,mid as integer
dim found as boolean
low=0 '设置初始值
high=ubround(myarray)
found=false
mid=(high+low)/2 '计算中间值
do while not found and (high >= low) '当没找到并且high值大于等于low值时
if cint(text1.text) = myarray( mid) then '当输入的查询值与myarray(mid)相等时
found=true
msgbox(mid) '显示数组元素的下标
msgbox(myarray(mid)) '显示数组元素的值
exit do '跳出循环
elseif cint(text1.text) < myarray(mid) then '当输入的查询值小于myarray(mid)时
high = mid -1
else
low=mid +1
end if
mid=(high+low)/2
loop
end sub
private sub form_load()
dim i as integer
for i =1 to ubound(myarray) '遍历数组元素
myarray(i) = i+5 '设置数组元素
print myarray(i) '显示元素值
next
end sub
第二に、コントロール配列
1、定義:同じタイプの対照群は、同じ名前のコレクションであり、同じプロセスを共有します。各コントロールのControlsコレクションは、制御配列の配列要素と呼ぶことができます。
あなたがコントロール配列を作成すると、システムは各制御配列は、一意のインデックス(指数)、つまり添字を制御することができます、このインデックスの役割は、コントロール配列内の別のコントロールを区別するために使用されます。
図2は、コントロール配列を作成します
(1)をコピーして貼り付ける方法:必要に応じて追加したまでは第一の制御配列要素まで、(ポップ:?コントロール配列を作成します)コントロールを追加し、決定するためのダイアログボックスで複製します。
(2)コントロールのNameプロパティを設定します。コントロールのname属性と同じタイプでも同じ名前のコントロール配列を作成することができます。
第三に、相関関数とステートメントの配列
1、配列機能:あなたは配列を作成し、変数のバリアントデータ型を返すことができます。
フォーマット:配列(引数リスト)
引数リスト:分離うち値と値のテーブル「」これらの値は、要素に値を割り当てるために使用されます。引数リストにはパラメータは、長さゼロの配列を作成しない場合。
以下のような:
dim A as variant
a=array(45,2,6,7) 'A中包含4个数组元素,各元素的值为:45,2,6,7
注:最初の要素A(0)は、配列のみバリアントデータ型で作成された関数の値、変数戻り缶のみバリアント型であり、変数はバリアント型でない場合、VBタイプを生成不一致エラー。
図2は、UBound関数、LBOUND
UBound関数関数は:最大の配列インデックスが使用可能な指定された次元の数、long型の戻り値を返します。
LBOUND機能:配列最小インデックス、long型の戻り値を指定された次元の数を返します。
dim a(1 to 100)
MsgBox UBound(a) '返回结果为100
MsgBox LBound(a) '返回结果为1
図3に示すように、分割関数はゼロから1次元配列へのインデックスを返し、この配列の一次元は、サブストリングの指定された数を含んでいます。
フォーマット:スプリット(表現、文字、COUNT、比較)
(1)式:必須。文字列は、区切りの部分文字列を含んでいます。式が0(「」)の文字列である場合、空の配列、即ち、配列要素なしデータを分割します。
(2)文字:オプション。サブストリング境界を識別するための文字列。省略した場合、セパレータとして空白文字(「」)。文字が0の文字列である場合、返される配列は、一つだけの要素、すなわち、完全な表現文字列が含まれています。
(3)カウント:オプション。返される部分文字列の数は-1、すべての部分文字列を返します。
(4)比較:オプション。数値。サブ用いた比較決意方法。値は次のとおりです。
定数①:vbusecompare、-1の値が設定値比較をオプションで実行されるステートメントの比較
②定数:vbBinaryCompare、0の値は、つまり、バイナリ比較を実行
③定数:vbTextCompare、1の値、つまりは、テキスト比較行う
④定数。専用アクセスのために、あるvbDatabaseCompare、2の値は、
Dim a
Private Sub Command1_Click()
Dim i As Long
For i = 0 To 2
Text1.Text = Text1.Text & vbCrLf & a(i)
Next i
End Sub
Private Sub Form_Load()
a = Split("abc.def.ghi", ".", -1, 1)
End Sub
:テキスト1検索結果表示で
ABC
DEF
GHI
図4に示すように、オプションの塩基:配列の下限が最近省略添字かどうかを指定するために使用されるデフォルト値。
文のモジュールが使用されています。モジュールは1度だけ表示することができ、文は、すべてのプロセス・モジュールの前に書かれなければならない、と配列の宣言は、次元数である必要があります前に。すべてのモジュールでの影響力のアレイ文の唯一の下限。
構文:オプションbaase | [0 1]
[0 | 1]:下限が省略されたときに、配列の添字のデフォルト値を設定します。配列の下限添字省略時のデフォルトは、一般的に0である
実施形態では、デフォルト値を配列Aを宣言し、1にセットされた後に添字前配列宣言ステートメントの使用:
option base 1
dim a(4) as long
アレイ素子は、それぞれ、(1)、A(2)、A(3)、A(4)