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 以下にはしないでください。

例外

例外の種類

エラー番号

条件

ArgumentException

5

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)

参照

参照

Visual Basic ランタイム ライブラリのメンバ

Interaction モジュール (Visual Basic)