📦 T3_Uty2バラ出荷コンテナ計算.vb - 詳細説明
📋 概要
このファイルは、バラ出荷(ピッキング出荷)におけるコンテナ(オリコン・通い箱)の必要数を計算するユーティリティソフトウェアです。出荷先ごとのバラ物量を分析し、最適なコンテナサイズと必要数を算出します。
主な用途:
- バラ出荷時の必要コンテナ数の算出
- 出荷先別・アイテム別の物量分析
- コンテナサイズ(31型、40型、51型、60型)の最適選択
- 充填率を考慮した実用的な容積計算
- 日別・出荷先別のEIQ分析
バラ出荷とは: ケース単位ではなく、ケースを開封して必要数量だけをピッキングして出荷する形態。小売店舗向けの多品種少量配送で多用されます。
🔧 依存関係
Imports System.Data.OleDb
Imports Microsoft.Office.Interop.Access
使用技術:
- OleDb: Microsoft Access データベースへの接続
- Access Interop: Access データベースの操作
- SQL クエリ: データの抽出・集計処理
🎯 主要機能
1. コンテナ容積計算
- 4種類のコンテナサイズに対応(31型、40型、51型、60型)
- 充填率を考慮した実用容積の算出
- ユーザー指定の充填率での計算
2. 出荷データ分析
- 出荷日別の物量集計
- 出荷先別のバラ物量集計
- アイテム別の出荷容積計算
- EIQランク別の分析
3. コンテナ数算出
- 出荷先ごとの必要コンテナ数
- 総コンテナ数の計算
- パレット積載数の計算
- 複数コンテナサイズの比較検討
4. EIQ分析
- Iランク(アイテム数)の集計
- Eランク(発送先数)の集計
- Qランク(数量)の分析
📦 対応コンテナサイズ
| 型式 |
内寸容積 (m³) |
一般的な用途 |
特徴 |
| 31型 |
0.0329 m³ (32.9リットル) |
小物・少量ピッキング |
小型、取り扱いやすい |
| 40型 |
0.0372 m³ (37.2リットル) |
標準ピッキング |
中型、汎用性高い |
| 51型 |
0.05 m³ (50リットル) |
中量ピッキング |
大型、容量大 |
| 60型 |
0.061 m³ (61リットル) |
大量ピッキング |
最大サイズ、重量物注意 |
オリコンとは: 折りたたみコンテナの通称。使用後は折りたたんで返送できるため、物流効率が高い通い箱として広く使用されています。
🔍 主要メソッド詳細
1. フォームロード処理
Private Sub Tera計算参考_EIQFrom_Load(sender As Object, e As EventArgs)
初期化処理:
- 使用期限と著作権の表示
- 必要ファイルの存在確認
- データベースパスの設定
- コンテナ容器Dgvの表示
- 出荷コンテナ物量データの抽出
- 出荷日別集計Dgvの表示
- 指定出荷日の容積集計
- 出荷コンテナ計算容積の算出
- 出荷日コンボボックスの作成
2. コンテナ容積計算開始
Private Sub コンテナ容積計算_開始_Click(sender As Object, e As EventArgs)
処理フロー:
- 入力検証
- 出荷日が選択されているか確認
- データ不足日(2022/05/14)のチェック
- データ抽出・集計
- 出荷コンテナ物量の抽出
- 指定出荷日の容積集計
- 出荷先別バラ容積の表示
- 出荷先別コンテナ数集計
- EIQ分析
- Iランク各アイテム数の算出
- Eランク各発送先数の算出
- EIQ結果の表示
- コンテナ数計算
- 視覚的フィードバック
- 背景色の変更(LightGray ⇔ GreenYellow)
データ不足への対応: 2022/05/14のデータは不足しているため、選択時にエラーメッセージを表示して計算を中止します。
3. 出荷コンテナ計算容積
Private Sub 出荷コンテナ計算容積()
計算ロジック:
計算容積 = 内容積 × (充填率 / 100)
計算例(40型、充填率80%の場合):
内容積: 0.0372 m³
充填率: 80%
計算容積 = 0.0372 × 0.8 = 0.02976 m³
→ 四捨五入して 0.0298 m³
4. 出荷日コンボボックス作成
Private Sub 出荷日Cbを作成()
処理内容:
- T230_日別集計テーブルから出荷日一覧を取得
- コンボボックスに出荷日を追加
- バラ数が最大の出荷日をデフォルト選択
- 背景色をPeachPuff(薄いオレンジ)に設定
自動選択: 最もバラ出荷が多い日を自動的に選択することで、最も計算が必要な日を優先的に表示します。
💾 データベース処理
データベース構成
データベース: SQLによるEIQ分析.accdb
場所: Dat保存Path & "\SQLによるEIQ分析.accdb"
主要テーブル
| テーブル名 |
説明 |
| T000_出荷データ |
元データ(全出荷データ) |
| T400_EIQ加工データ |
EIQ分析用に加工されたデータ |
| T230_日別集計 |
日別の集計データ |
| TF10_出荷コンテナ物量 |
バラ出荷のコンテナ物量(計算結果) |
| My_コンテナ仕様 |
コンテナの仕様マスターデータ |
出荷コンテナ物量の抽出
Private Sub 出荷コンテナの出荷物量抽出()
処理ステップ:
- 既存のクエリとテーブル(QF10_*, TF10_*)を削除
- SQLクエリを3段階で実行
SQLクエリの詳細
ステップ1: 出荷区分の結合
CREATE VIEW QF10_1 AS
SELECT T400_EIQ加工データ.*, T000_出荷データ.出荷区分
FROM T400_EIQ加工データ
LEFT JOIN T000_出荷データ
ON T400_EIQ加工データ.行連番 = T000_出荷データ.行連番;
EIQ加工データに出荷区分を結合します。
ステップ2: バラ出荷の集計
CREATE VIEW QF10_2 AS
SELECT
出荷区分, 出荷日, B行Eランク, B行Iランク,
アイテム, 出荷先,
SUM(バラ出荷の行数) AS 行数,
SUM(バラ出荷のバラ数) AS バラ数,
SUM(バラ出荷のケース換算) AS ケース換算,
SUM(バラ出荷のPL換算) AS PL換算,
SUM(バラ出荷の容積換算) AS 容積換算,
SUM(バラ出荷の重量換算) AS 重量換算
FROM QF10_1
GROUP BY 出荷区分, 出荷日, B行Eランク, B行Iランク, アイテム, 出荷先
HAVING 出荷区分="バラ_出荷コンテナ" AND SUM(バラ出荷のバラ数) > 0;
バラ出荷データをアイテム・出荷先別に集計します。
ステップ3: テーブル化
SELECT QF10_2.*
INTO TF10_出荷コンテナ物量
FROM QF10_2;
ビューをテーブルとして保存します。
📊 表示・集計機能
1. コンテナ容器Dgv表示
Sub コンテナ容器Dgv表示()
表示内容:
- コンテナの型式
- 外寸(幅・奥行・高さ)
- 内寸(幅・奥行・高さ)
- 外寸容積
- 内寸容積
- 折りたたみ時の寸法
- 折りたたみ面積
- 備考
2. 出荷日別集計Dgv表示
Sub 出荷日別集計Dgv表示()
表示項目:
- 出荷日
- 総行数
- バラ数
- ケース換算
- 容積換算
- その他集計値
3. 指定出荷日_出荷先別バラ容積Dgv表示
Private Sub 指定出荷日_出荷先別バラ容積Dgv表示()
内容:
- 選択された出荷日の出荷先別データ
- 各出荷先のバラ容積
- アイテム単位の詳細
- EIQランク情報
4. 出荷先別_コンテナ数集計Dgv表示
Private Sub 出荷先別_コンテナ数集計Dgv表示()
計算・表示内容:
- 出荷先ごとの総容積
- 必要コンテナ数
- 端数処理(切り上げ)
- コンテナ充填率の実績
必要コンテナ数 = CEILING(総容積 / コンテナ計算容積)
5. 出荷コンテナ容積EIQDgv表示
Private Sub 出荷コンテナ容積EIQDgv表示()
EIQ分析結果の表示:
- Eランク別のデータ
- Iランク別のデータ
- Qランク(数量)の分析
- ABC分析結果
📈 EIQ分析機能
EIQ分析とは:
- E (Entry): 発送先数(オーダー数)
- I (Item): アイテム数(品目数)
- Q (Quantity): 数量(出荷量)
この3つの指標を組み合わせて物流の特性を分析する手法です。
1. Iランク各アイテム数
Private Sub Iランク各アイテム数()
計算内容:
- Iランク(A, A1, A2, B, B1, B2, C)ごとのアイテム数
- アイテム数の分布分析
- 総アイテム数に対する比率
2. Eランク各発送先数
Private Sub Eランク各発送先数()
計算内容:
- Eランク(A, A1, A2, B, B1, B2, C)ごとの発送先数
- 発送先の分布分析
- 総発送先数に対する比率
EIQランクの意味
| ランク |
説明 |
特性 |
| Aランク |
高頻度・大量 |
重点管理対象 |
| A1ランク |
Aランクの上位 |
最重要 |
| A2ランク |
Aランクの下位 |
重要 |
| Bランク |
中頻度・中量 |
標準管理 |
| B1ランク |
Bランクの上位 |
やや重要 |
| B2ランク |
Bランクの下位 |
標準 |
| Cランク |
低頻度・少量 |
簡易管理 |
🧮 コンテナ数計算
コンテナ容積計算コンテナ数Dgv表示
Private Sub コンテナ容積計算コンテナ数Dgv表示()
計算ロジック:
- 出荷先ごとの総容積を集計
- 必要コンテナ数の算出
必要数 = CEILING(総容積 / コンテナ計算容積)
- 端数処理
- 常に切り上げ(不足を防ぐため)
- 1個未満は1個として計算
コンテナPL積載数計算
Private Sub コンテナPL積載数計算()
計算内容:
- パレット1枚あたりのコンテナ積載数
- 必要パレット数
- 積載効率の評価
パレット積載: コンテナをパレットに積載して運搬することで、搬送効率が向上します。一般的に1パレットに複数のコンテナを積載します。
🎨 UI コンポーネント
入力コントロール
| コントロール |
説明 |
初期値 |
| 出荷日Cb |
出荷日選択コンボボックス |
バラ数最大の日 |
| バラ出荷_コンテナ選択Cb |
コンテナ型式選択 |
40型(標準) |
| 出荷コンテナ充填率Tb |
充填率(%) |
80% |
表示用TextBox
| コントロール |
表示内容 |
| 内寸容積Tb |
コンテナの内寸容積(m³) |
| 出荷コンテナ計算容積Tb |
充填率考慮後の計算容積(m³) |
DataGridView一覧
- コンテナ容器Dgv: コンテナ仕様マスターデータ
- 出荷日別集計Dgv: 日別の出荷データ集計
- 指定出荷日_出荷先別バラ容積Dgv: 出荷先別詳細
- 出荷先別_コンテナ数集計Dgv: コンテナ数計算結果
- 出荷コンテナ容積EIQDgv: EIQ分析結果
- コンテナ容積計算コンテナ数Dgv: 総コンテナ数
- 作業Dgv: 一時作業用
ボタン
- コンテナ容積計算_開始: 計算処理の実行
- 閉じるBt: フォームを閉じる
RadioButton
PictureBox
- 出荷コンテナPb: コンテナ画像の表示
- オリコン寸法.jpg(寸法図)
- オリコン.gif(外観図)
🎯 視覚的フィードバック
背景色の変更
計算実行時に、結果表示エリアの背景色が変化します:
| 状態 |
背景色 |
意味 |
| 初期状態 |
LightGray(薄灰色) |
未計算 |
| 計算完了 |
GreenYellow(黄緑色) |
計算済み・結果表示中 |
If コンテナ数計算結果chk = 0 Then
コンテナ数計算結果Panel.BackColor = Color.LightGray
GroupBox23.BackColor = Color.LightGray
コンテナ数計算結果chk = 1
Else
コンテナ数計算結果Panel.BackColor = Color.GreenYellow
GroupBox23.BackColor = Color.GreenYellow
コンテナ数計算結果chk = 0
End If
出荷日コンボボックスの色
- PeachPuff(薄いオレンジ): 視認性向上のための背景色
🔄 処理フロー全体図
┌─────────────────────────────────────┐
│ フォームロード │
└──────────┬──────────────────────────┘
│
├→ 使用期限・著作権表示
├→ ファイル確認
├→ データベースパス設定
├→ コンテナ容器Dgv表示
├→ 出荷コンテナ物量抽出
├→ 出荷日別集計Dgv表示
├→ コンテナ計算容積算出
└→ 出荷日Cb作成
│
▼
┌─────────────────────────────────────┐
│ 出荷日選択 │
└──────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ コンテナ容積計算開始ボタンクリック │
└──────────┬──────────────────────────┘
│
├→ 入力検証(出荷日、データ不足チェック)
│
▼
┌─────────────────────────────────────┐
│ データ抽出・集計 │
└──────────┬──────────────────────────┘
│
├─ 出荷コンテナ物量抽出
│ └→ SQL実行(3段階)
│
├─ 指定出荷日容積集計
├─ 出荷先別バラ容積Dgv表示
└─ 出荷先別コンテナ数集計Dgv表示
│
▼
┌─────────────────────────────────────┐
│ EIQ分析 │
└──────────┬──────────────────────────┘
│
├─ Iランク各アイテム数算出
├─ Eランク各発送先数算出
└─ EIQ結果Dgv表示
│
▼
┌─────────────────────────────────────┐
│ コンテナ数計算 │
└──────────┬──────────────────────────┘
│
├─ コンテナ数Dgv表示
│ └→ 総容積 / 計算容積 → 切り上げ
│
└─ コンテナPL積載数計算
│
▼
┌─────────────────────────────────────┐
│ 結果表示・視覚的フィードバック │
└──────────┬──────────────────────────┘
│
└→ 背景色変更(GreenYellow)
💡 使用シーン
1. 日次運用
- 翌日の出荷に必要なコンテナ数の算出
- コンテナの準備・配置計画
- ピッキングエリアのレイアウト決定
2. 計画立案
- 必要コンテナ総数の見積もり
- コンテナサイズの最適化検討
- 投資計画(コンテナ購入数)
3. 分析・改善
- EIQ分析による物流特性の把握
- 出荷先別の特性分析
- ピッキング効率の改善立案
4. シミュレーション
- 充填率を変更した場合の影響分析
- 異なるコンテナサイズの比較
- 繁忙日の対応能力確認
📊 DataGridView設定
共通設定
- RowHeadersVisible = False: 行ヘッダー非表示
- AllowUserToAddRows = False: ユーザー行追加無効
- AutoSizeColumnsMode = AllCells: 列幅自動調整
- AutoSizeRowsMode = AllCells: 行高自動調整
数値列の設定
For j = 2 To 19
.Columns(j).DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.MiddleRight
Next
2列目以降(数値データ)は右揃えで表示します。
⚠️ 注意事項とエラー対応
データ不足への対応
2022/05/14のデータについて:
この日のデータは不足しているため、選択時にエラーメッセージを表示します。
If 出荷日Cb.Text = "2022/05/14" Then
MsgBox("データ不足です。他の出荷日を選択")
Exit Sub
End If
入力検証
- 出荷日が未選択の場合は処理を中止
- 充填率が未入力の場合は計算をスキップ
計算時の注意
- 充填率の現実性: 80~90%が一般的。100%では運用困難
- 端数処理: 常に切り上げ(不足防止)
- コンテナサイズ: 出荷先特性に合わせて選択
- 重量制限: 容積だけでなく重量も考慮が必要
🔗 関連モジュール
このユーティリティは、以下のTera計算システムと連携します:
- T000_出荷データ: 元データの入力元
- T400_EIQ加工データ: EIQ分析の基礎データ
- T3_3 梱包物量: 梱包計算との連携
- T3_4 出荷スペース: 出荷スペース計算との連携
💾 ファイル・パス構成
データベースファイル
MyDB = Dat保存Path & "\SQLによるEIQ分析.accdb"
画像ファイル
MyPath = Environment.CurrentDirectory
オリコン寸法.jpg: 寸法説明図
オリコン.gif: 外観図
ソフトデータパス
SoftDataPath = Dat保存Path & "\SoftData"
📚 まとめ
T3_Uty2バラ出荷コンテナ計算.vb は、バラ出荷時の必要コンテナ数を精密に計算する専門ツールです。
主な特徴
- ✅ 4種類のコンテナサイズに対応(31型~60型)
- ✅ 充填率を考慮した実用的な容積計算
- ✅ 出荷先別・アイテム別の詳細分析
- ✅ EIQ分析による物流特性の把握
- ✅ SQL活用による高速データ処理
- ✅ 視覚的なフィードバック機能
適用分野
- 小売業向けバラ出荷(店舗配送)
- ピッキングセンターの運用計画
- 通い箱(オリコン)の必要数管理
- 物流コストの分析・削減
計算精度の向上ポイント
- 実績に基づく充填率の設定
- 出荷先特性に応じたコンテナサイズ選択
- 定期的なEIQ分析による見直し
実用上の注意: 計算結果は理論値です。実際の運用では、予備コンテナの確保(10~20%)が推奨されます。
📞 サポート情報
ドキュメント作成日: 自動生成
対象ファイル: T3_Uty2バラ出荷コンテナ計算.vb
言語: Visual Basic .NET (VB.NET)
総行数: 637行
主要技術: Windows Forms, Access Database, SQL, EIQ分析