Partition 関数
更新 : 2007 年 11 月
指定された値が含まれる範囲を計算し、その範囲を表す文字列を返します。
Public Function Partition( _
ByVal Number As Long, _
ByVal Start As Long, _
ByVal Stop As Long, _
ByVal Interval As Long _
) As String
パラメータ
Number
必ず指定します。長整数型 (Long) です。算出された範囲のいずれかに存在する整数を指定します。Start
必ず指定します。長整数型 (Long) です。計算する一連の範囲の開始点を示す整数です。Start に 0 以下の数字を指定することはできません。Stop
必ず指定します。長整数型 (Long) です。計算する一連の範囲の終了点を示す整数です。Stop に Start と同じ、またはこれより小さい数字を指定することはできません。Interval
必ず指定します。長整数型 (Long) です。Start と Stop の間にある計算される各範囲のサイズを表す整数です。Interval は 1 以下にはしないでください。
例外
例外の種類 |
エラー番号 |
条件 |
---|---|---|
Start < 0、Stop <= Start、または Interval < 1 |
非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、「エラー番号」列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と照らし合わせます)。しかし、可能な限り、このエラー処理は Visual Basic の構造化例外処理の概要 で置き換えてください。
解説
Partition 関数は、数値の範囲を計算します。それぞれの範囲には、Interval で指定される値の数が含まれます。最初の範囲は Start から始まり、最後の範囲は Stop で終わります。Partition 関数は、名前付き引数 Number に指定した整数が属する範囲を算出し、その範囲を示す文字列を返します。範囲を示す文字列は、範囲内の最小値 (lowervalue) と最大値 (uppervalue) をコロンで区切って、"lowervalue:uppervalue" の形式の文字列として返されます。
必要に応じて Partition 関数は、lowervalue と uppervalue の先頭にスペースを挿入します。これにより最小値と最大値には、値の文字列表現と同じ文字数 (Stop に 1 を加えた文字数) が設定されます。スペースを挿入することで、Number に複数の数値を指定して Partition 関数を実行しても、その後の並べ替え処理で適切に文字列を処理できます。
名前付き引数の Start、Stop、Interval の値の 3 とおりの組み合わせを使って、その結果得られる範囲の文字列の例を次の表に示します。"最初の範囲" と "最後の範囲" の列は、指定された Start と Stop の値で返す最大値と最小値の範囲を表しています。"最初の範囲より前" と "最後の範囲より後" の列はそれぞれ、Start より小さい Number の値および Stop より大きい Number の値に対して返される文字列を表しています。
Start |
Stop |
Interval |
最初の範囲より前 |
最初の範囲 |
最後の範囲 |
最後の範囲より後 |
---|---|---|---|---|---|---|
0 |
99 |
5 |
" : -1" |
" 0: 4" |
" 95: 99" |
"100: " |
20 |
199 |
10 |
" : 19" |
" 20: 29" |
"190:199" |
"200: " |
100 |
1010 |
20 |
" : 99" |
" 100: 119" |
"1000:1010" |
"1011: " |
この表の 3 行目には、名前付き引数 Start と名前付き引数 Stop で定義される数列が名前付き引数 Interval の値で等分できない場合の結果が示されています。名前付き引数 Interval の値は 20 ですが、最後の範囲は名前付き引数 Stop に指定された整数値で終わっているため、その長さは 11 になっています。
Interval が 1 の場合、Start および Stop 引数にかかわらず、範囲は "Number:Number" になります。たとえば、名前付き引数 Number に 267 を指定し、名前付き引数 Stop に 1,000 を指定した場合に、名前付き引数 Interval に 1 を指定すると、Partition は "267:267" という範囲を返します。
Partition は、データベース クエリの作成に役立ちます。たとえば、請求書番号の各範囲 (1 ~ 1,000、1,001 ~ 2,000 など) に含まれる注文の数を示す SELECT クエリの作成が可能です。
使用例
次の例では、1950 年から 2049 年まで、10 年単位で範囲を設定します。year の値を適切な範囲に割り当て、範囲を示すString の値を返します。たとえば、year の値が 1984 の場合、Partition は "1980:1989" を返します。
Dim year As Long = 1984
' Assume the value of year is provided by data or by user input.
Dim decade As String
decade = Partition(year, 1950, 2049, 10)
MsgBox("Year " & CStr(year) & " is in decade " & decade & ".")
必要条件
名前空間 : Microsoft.VisualBasic
モジュール : Interaction
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)