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

最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)


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

1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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