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 ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


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

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




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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