VBA関数
Partition関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
公開日:2013年5月以前 最終更新日:2025-06-15

Partition関数


Partition関数は、数値の範囲をグループ分けし、その数値がどのグループに属するかを示す文字列を返します。
この関数は、特にデータベースのクエリやレポート作成において、データを特定の範囲で分類する際に役立ちます。



Partition関数の構文

Partition(number, start, stop, interval)

number (必須):
データ型: Long
グループ分けの対象となる数値を指定します。
start (必須):
データ型: Long
範囲全体の開始値(最小値)を指定します。
stop (必須):
データ型: Long
範囲全体の終了値(最大値)を指定します。
interval (必須):
データ型: Long
各グループのサイズ(間隔)を指定します。
解説・制限事項等
  • Partition 関数は、指定されたnumberが属するグループを示す文字列を返します。
  • 戻り値の文字列は、通常 start:end の形式になります(例: "000000-000099")。これにより、numberがどの数値範囲に含まれるかが一目で分かります。
  • 引数の条件:
    • start は 0 以上でなければなりません。
    • stop は start より大きくなければなりません。
    • interval は 1 以上でなければなりません。
    • stop - start を interval で割った結果が、Long 型のデータ型で表現できる最大値以下でなければなりません。そうでない場合、オーバーフローエラーが発生します。
  • グループの計算:
    • Partition 関数は、numberがどのグループに属するかを計算し、そのグループの開始値と終了値を文字列として整形して返します。
    • グループの開始値は start + (interval * n) の形式で計算され、nは0, 1, 2, ...といった整数です。
    • 範囲外の数値が指定された場合:
      • number が start より小さい場合、戻り値は ":start-1" の形式になります(例: ":0-99")。
      • number が stop より大きい場合、戻り値は "stop+1:end" の形式になります(例: "101:End")。

Partition関数の使用例

次のコード例では、Partition 関数を使って、様々な数値がどのグループに属するかを確認します。

Sub Partition_SimpleSample()

  Dim result As String
  
  ' 例1: 0-99 を 10刻みで分割
  MsgBox "数値 5 が属する範囲 (0-99, 10刻み): " & Partition(5, 0, 99, 10), vbInformation, "Partition 関数 例1"
  ' 結果: 0-9

  MsgBox "数値 45 が属する範囲 (0-99, 10刻み): " & Partition(45, 0, 99, 10), vbInformation, "Partition 関数 例1"
  ' 結果: 40-49

  MsgBox "数値 99 が属する範囲 (0-99, 10刻み): " & Partition(99, 0, 99, 10), vbInformation, "Partition 関数 例1"
  ' 結果: 90-99

  ' 例2: 範囲外の数値
  MsgBox "数値 -5 が属する範囲 (0-99, 10刻み): " & Partition(-5, 0, 99, 10), vbInformation, "Partition 関数 例2"
  ' 結果: :0-9

  MsgBox "数値 105 が属する範囲 (0-99, 10刻み): " & Partition(105, 0, 99, 10), vbInformation, "Partition 関数 例2"
  ' 結果: 100:

  ' 例3: 異なる間隔
  MsgBox "数値 75 が属する範囲 (0-200, 25刻み): " & Partition(75, 0, 200, 25), vbInformation, "Partition 関数 例3"
  ' 結果: 75-99

End Sub

  • このコードでは、Partition 関数に異なるnumber、start、stop、intervalの組み合わせを渡して、その戻り値を確認しています。
  • 例1では、0から99までの範囲を10刻みで分割した場合に、5、45、99がそれぞれどのグループに属するかを示しています。例えば、Partition(5, 0, 99, 10) は、0から9までのグループを表す "0-9" を返します。
  • 例2では、startより小さい値(-5)やstopより大きい値(105)がnumberに指定された場合の戻り値の形式を示しています。範囲外の数値に対しても、特定のルールに基づいた文字列が返されます。
  • 例3では、グループの間隔(interval)を25に変更した場合の動作を示しています。
  • Partition関数は、大量の数値を特定の基準で分類し、集計するレポートなどを作成する際に特に有効です。


※本記事の作成にあたっては、生成AI(Gemini)を活用し一部の文章作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。


Office VBA リファレンス Partition関数

※VBA関数一覧
マクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他……



同じテーマ「VBA関数」の記事

CreateObject関数
DoEvents関数
Environ関数
GetObject関数
IMEStatus関数
InputBox関数
MsgBox関数
Partition関数
QBColor関数
RGB関数
Shell関数


新着記事NEW ・・・新着記事一覧を見る

VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)
Excelワークシート関数全一覧(最新版)|Excelリファレンス(6月12日)
エクセル関数辞典 AI版|エクセル入門(6月10日)
生成AIと100本ノック 28本目:シートをブックに分割|生成AI活用研究(6月8日)
生成AIと脱Excelの時代:ブラックボックスと共に進む知的変革|生成AI活用研究(2025-06-08)
生成AIと100本ノック 27本目:ハイパーリンクのURL|生成AI活用研究(6月7日)
生成AIと100本ノック 26本目:ファイル一覧作成|生成AI活用研究(6月6日)
AI時代のプログラミング再考:記述の自由と知の民主化|生成AI活用研究(2025-06-06)
Excel×スプレッドシート連携:HTTP GETで学ぶGAS API設計入門|生成AI活用研究(2025-06-04)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ