Partition関数

Partition関数は、VBA関数の中で制御・入出力関数に分類される関数です。

目次

スポンサー リンク

Partition関数とは

Partition関数は、ある数値が、区切られた複数の範囲のうち、どの範囲に含まれるかを示すバリアント型 (内部処理形式 String の Variant) の文字列を返します。

構文Partition(number, start, stop, interval)
引数省略説明
number ×範囲に対して評価する整数を指定します。
start 対象となる範囲全体の先頭となる整数を指定します。0 未満の整数を指定することはできません。
stop 対象となる範囲全体の末尾となる整数を指定します。名前付き引数 stop には、名前付き引数 start に指定した整数よりも大きい整数を指定しなければなりません。

Partition 関数は、名前付き引数 number に指定した整数が属する特定の範囲を算出し、その範囲を示すバリアント型 (内部処理形式 Stringの Variant) の文字列を返します。Partition 関数は、クエリーの作成に特に役立ちます。たとえば、受注番号の各範囲 (1 ~ 1,000、1,001 ~ 2,000 など) に含まれる注文の数を示す選択クエリーを作成することが可能です。
次の表では、名前付き引数 start、stop、および interval の値の組み合わせを 3 とおり示し、その結果得られる範囲を示しています。「最初の範囲」の列と「最後の範囲」の列は、Partition 関数が返す文字列を示しています。範囲を示す文字列は、範囲内の最小値と最大値をコロンで区切って、最大値 : 最小値の形式で返されます。

startstopinterval最初の範囲の直前最初の範囲最後の範囲最後の範囲の直後
0995" :-1"" 0: 4"" 95: 99"" 100: "
2019910" : 19"" 20: 29"" 190: 199"" 200: "
100101020" : 99"" 100: 119"" 1000: 1010"" 1011: "

この表の 3 行目には、名前付き引数 start と名前付き引数 stop で定義される数列が名前付き引数 interval の値で等分できない場合の結果が示されています。名前付き引数 interval の値は 20 ですが、最後の範囲は名前付き引数 stop に指定された整数値で終わっているため、その長さは 11 になっています。
Partition 関数は、コロンの両側に名前付き引数 stop で指定した整数の桁数に 1 を加えた文字数を設定し、先頭に十分なスペースを持った範囲を返します。こうすることによって、何回か他の数値を指定して Partition 関数を実行しても、同じ文字数の文字列が返されるので、その後の並べ替え処理で適切に文字列を処理することができます。
名前付き引数 interval に 1 を指定すると、名前付き引数 start および名前付き引数 stop の値に関係なく、範囲は number:number として返されます。たとえば、名前付き引数 number に 100 を指定し、名前付き引数 stop に 1,000 を指定した場合に、名前付き引数 interval に 1 を指定すると、" 100: 100" という範囲が返されます。
引数のいずれかに Null 値を指定すると、Null 値が返されます。

Partition関数のサンプルコード

次の例では、運送費 (Freight) フィールド を含む、注文 (Orders) テーブルがあるものと仮定します。運送費を分類し、それに対応する注文件数を数える選択プロシージャを作成できます。ここでは、Partition 関数と SQL の Count 関数を使って、運搬費を分類しています。まず、Partition 関数で各範囲を設定し、その後 SQL の Count 関数で各範囲内の注文件数を数えます。この例では、Partition 関数の引数 start を 0、stop を 500、interval を 50 に設定します。したがって、最初の範囲は 0:49 で、上限 500 までの範囲が設定されます。


Sub Sample

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);

End Sub

実行結果

解説

制御・入出力関数一覧

関数名内容
Choose数値で指定した式の値を返します。
IIf式の結果により2つの引数のうち1つを返します。
Inputファイルから指定した文字数の文字列を読みこんで返します。
InputBファイルから指定したバイト数のデータを読み込んで返します。
InputBoxダイアログボックスにメッセージを表示しテキストボックスに入力した値を返します。
MsgBoxダイアログボックスにメッセージを表示します。
Partition指定した数値の範囲が属する文字列を返します。
Spc指定した数のスペースを挿入します。
Switch条件式を評価し、真(True)の場合に式を返します。
TypeName変数に関する情報を返します。
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。