1. 概要
🎯 モジュールの目的
T3_2_入荷スペース.vbは、物流施設における入荷エリアの必要スペースを計算するための高度なモジュールです。入荷物量、トラック車種、積載方式、荷降ろし時間などの様々なパラメータを考慮し、科学的根拠に基づいた面積計算を実施します。
1.1 主な特徴
📊 多様なデータ入力
Excelファイルから入荷物量データを読み込み、ケース単位・バラ単位の出荷分入荷量を管理
🚛 トラック車種対応
複数のトラック車種と積載方式(パレット積載/ケース直積み)に対応
⏱️ 時間計算
荷降ろし作業時間、ピーク時物量比を考慮した精密な計算
📐 面積最適化
待機面積、空パレット仮置面積を含む総合的なスペース計算
1.2 ファイル情報
| 項目 | 内容 |
|---|---|
| ファイル名 | T3_2_入荷スペース.vb |
| 行数 | 962行 |
| クラス名 | T3_2入荷From |
| 継承 | System.Windows.Forms.Form |
| 使用ライブラリ | System.IO, OfficeOpenXml (EPPlus) |
1.3 関連ファイル
- 在庫入荷量.xlsx: 入荷物量データ(ケース単位・バラ単位)
- 入荷スペース計算.xlsx: トラック仕様、荷降ろし時間設定データ
- Tera計算Data フォルダ: データベースとExcelファイルの保存場所
2. アーキテクチャと設計
2.1 クラス構造
📦 T3_2入荷From クラス
基底クラス: System.Windows.Forms.Form
アクセス修飾子: Public
主な責務: 入荷スペース計算のUI提供と計算ロジック実装
2.2 リージョン構成
| リージョン名 | 行範囲 | 主な機能 |
|---|---|---|
| 入荷量Dgv表示 | 23-163 | 入荷物量データの読み込みと表示 |
| 入荷スペース計算 | 165-578 | スペース計算のメインロジック |
| PL_ケースの容積計算 | 580-637 | パレット・ケース容積の計算 |
| 荷降ろし時間修正変更 | 639-858 | 荷降ろし時間設定の読込と更新 |
| 荷降ろし時間修正変更を保存 | 860-940 | ユーザー設定の保存処理 |
2.3 データフロー
処理の流れ
1. Excelデータ読み込み ├─ 在庫入荷量.xlsx (ケース単位/バラ単位出荷データ) └─ 入荷スペース計算.xlsx (トラック仕様/荷降ろし時間) 2. 入荷量集計 ├─ ケース単位出荷分入荷量 ├─ バラ単位出荷分入荷量 └─ 全入荷量の容積計算 3. トラック車種・積載方式選択 ├─ 入荷方式1, 2, 3 (最大3パターン) ├─ パレット積載 / ケース直積み └─ 物量比率の設定 4. バース数計算 ├─ 着床台数/日 = 物量 / 積載容積 ├─ 着床時間/台 (荷降ろし作業時間) ├─ ピーク時物量比の適用 └─ 必要バース数の算出 5. スペース計算 ├─ 待機面積 = トラック面積 × バース数 × 通路係数 ├─ 空パレット仮置面積 └─ 合計入荷スペース = (待機 + 仮置) × 面積倍率
3. 主要機能
3.1 データ読み込み機能
📥 在庫入荷量XLSX読込
在庫入荷量XLSX読込(MySheet, Mydgv)
機能: Excelファイルから入荷量データを読み込み、DataGridViewに表示
使用技術: EPPlus (OfficeOpenXml)
対象シート:
- ケース出荷物量
- バラ出荷物量
Private Sub 在庫入荷量XLSX読込(MySheet As String, Mydgv As DataGridView) MyExcel = Dat保存Path & "\在庫入荷量.xlsx" Dim fi As IO.FileInfo = New IO.FileInfo(MyExcel) If fi.Exists = False Then MessageBox.Show("ファイルなし") Return End If Using pkg As New ExcelPackage(fi) Dim sheet1 As ExcelWorksheet = pkg.Workbook.Worksheets(MySheet) ' データ読み込み処理... End Using End Sub
3.2 入荷スペース計算機能
🧮 入荷スペース計算1()
メインの計算処理
処理内容:
- 入荷トラック仕様Dgv表示()
- 入荷バースと入荷スペース計算1()
📊 入荷バースと入荷スペース計算1()
詳細計算ステップ
この関数は、入荷スペースを3つの入荷方式(方式1、方式2、方式3)に分けて計算します。
Step 1: 物量計算
Step 2: トラック積載容積
Step 3: 着床台数計算
Step 4: 延べ着床時間
Step 5: ピーク時着床時間
Step 6: 必要バース数
Step 7: 待機面積
Step 8: 空パレット仮置面積
Step 9: 合計入荷スペース
3.3 補助計算関数
パレット積載容積()
パレット積載時のトラック内容積を計算
ケース直積み積載容積()
ケース直積み時のトラック内容積を返す
トラック仕様データから該当する容積を取得
着床時間()
車種と積載方式から荷降ろし時間を取得
荷降ろし時間ユーザDgvから読み取り
待機面積()
トラック待機に必要な面積を計算
空PL仮置面積()
空パレットの仮置きに必要な面積
3.4 PL/ケース容積計算
📦 PL_ケースの容積計算()
機能概要
全在庫データから平均ケース寸法を逆算する高度な計算
計算ロジック:
- 全在庫容積と全在庫ケース数から平均ケース容積を計算
- 平均ケース容積から4:3:2の比率で寸法を逆算
- パレット寸法と積載率を設定
' ケース寸法の逆算(4:3:2の比率) Dim V As Single = 平均ケース出荷容積 * 1000 ^ 3 ' m³からmm³に変換 For i = 1 To 1000 平均ケース幅 = 4 * i 平均ケース奥行 = 3 * i 平均ケース高 = 2 * i If (平均ケース幅 * 平均ケース奥行 * 平均ケース高) >= V Then Exit For End If Next
4. 計算ロジック詳細
4.1 入荷量計算
| 項目 | 計算式 | 説明 |
|---|---|---|
| ケース単位入荷量 | ケース出荷データから集計 | ケース単位で出荷される商品の入荷量 |
| バラ単位入荷量 | バラ出荷データから集計 | バラ単位で出荷される商品の入荷量 |
| 全入荷容積 | ケース + バラの合計容積 | 全体の物量(m³) |
| ピーク時容積 | 全入荷容積 × ピーク時物量比 / 100 | ピーク時の入荷量 |
4.2 トラック・バース計算
⚠️ 計算上の重要なポイント
- 3つの入荷方式: 異なる車種や積載方式を組み合わせて最適化
- 物量比率: 各入荷方式への物量配分(合計100%)
- 積載率: トラックの実際の積載効率を考慮
- ピーク時物量比: 1日の中でのピーク時を考慮
- 通路考慮倍数: トラック配置時の通路スペース(1.5倍)
- 面積倍率: 余裕率や作業スペースを確保
4.3 荷降ろし時間の構成
| 作業項目 | 時間(分) | 説明 |
|---|---|---|
| トラック着床 | 可変 | トラックがバースに着く時間 |
| 入荷事務 | 可変 | 伝票確認、入荷登録作業 |
| 荷降ろし作業 | 可変 | 実際の荷降ろし作業時間 |
| 検品事務 | 可変 | 検品、数量確認作業 |
| トラック離床 | 可変 | トラックがバースから離れる時間 |
| 合計 | 荷降ろし計 | 上記の合計時間 |
4.4 計算例
📝 実際の計算例
前提条件:
- 全入荷容積: 100 m³
- 入荷方式1(パレット積載): 物量比 60%
- トラック車種: 4tトラック
- トラック内容積: 30 m³
- トラック積載率: 80%
- 荷降ろし時間: 60分/台
- ピーク時物量比: 30%
計算過程:
1. 物量 = 100 m³ × 60% = 60 m³
2. 積載容積/台 = 30 m³ × 80% = 24 m³
3. 着床台数/日 = 60 m³ / 24 m³ = 2.5台
4. 延べ着床時間 = 2.5台 × 60分 = 150分
5. ピーク時着床時間 = 150分 × 30% = 45分
6. バース数 = 45分 / 60 = 0.75 ≒ 1バース
7. 待機面積 = 15m² × 1 × 1.5 = 22.5 m²
8. 空PL仮置面積 = (1.21 m² × 10PL × 1) / 5段 = 2.42 m²
9. 入荷スペース = (22.5 + 2.42) × 1.2 = 29.9 m²
5. データフローと依存関係
5.1 Excelファイル構造
📄 在庫入荷量.xlsx
| シート名 | 内容 | サイズ |
|---|---|---|
| ケース出荷物量 | ケース単位出荷分の入荷量データ | 7列 × 60行 |
| バラ出荷物量 | バラ単位出荷分の入荷量データ | 7列 × 60行 |
📄 入荷スペース計算.xlsx
| シート名 | 内容 | サイズ |
|---|---|---|
| 荷降ろし時間Tera設定 | デフォルトの荷降ろし時間設定 | 20列 × 23行 |
| 荷降ろし時間ユーザ設定 | ユーザーがカスタマイズした設定 | 20列 × 23行 |
| トラック仕様 | 各種トラックの寸法・容積データ | 15列 × 12行 |
5.2 DataGridView 一覧
| コントロール名 | 用途 | データソース |
|---|---|---|
| ケース単位出荷分入荷物量Dgv | ケース入荷量表示 | 在庫入荷量.xlsx / ケース出荷物量 |
| バラ単位出荷分入荷物量Dgv | バラ入荷量表示 | 在庫入荷量.xlsx / バラ出荷物量 |
| 入荷量Dgv | 入荷量集計表示 | 上記2つのDgvから集計 |
| 入荷トラック仕様Dgv | トラック仕様表示 | 入荷スペース計算.xlsx / 荷降ろし時間ユーザ設定 |
| 荷降ろし時間Tera設定Dgv | デフォルト設定表示 | 入荷スペース計算.xlsx / 荷降ろし時間Tera設定 |
| 荷降ろし時間ユーザDgv | ユーザー設定表示・編集 | 入荷スペース計算.xlsx / 荷降ろし時間ユーザ設定 |
| 入荷スペース計算結果Dgv | 計算結果表示 | 計算処理の結果 |
5.3 変数とプロパティ
' グローバル変数(T3_UtilitySoft.vb から参照) Public Dat保存Path As String ' データ保存パス Public MyExcel As String ' Excelファイルパス Public MySheet As String ' シート名 Public MyDgv As DataGridView ' 対象DataGridView ' ローカル変数 Private Dgv表示_チェック As Integer ' 初期化完了フラグ Private 平均ケース幅 As Single Private 平均ケース奥行 As Single Private 平均ケース高 As Single
6. メソッド詳細リファレンス
6.1 初期化関連
スペース計算1入荷From_Load
イベント: Form Load
処理内容:
- 初期化フラグを0に設定
- ファイル確認()
- 著作権・有効期間ラベルの設定
- 在庫入荷量XLSX読込(ケース/バラ)
- 初期化フラグを1に設定
- 入荷量Dgv表示()
- 荷降ろし時間Dgv読込(Tera設定/ユーザ設定)
- Text表示()
- PL_ケースの容積計算()
6.2 表示関連
入荷量Dgv表示()
機能: 入荷量の集計結果を表示
表示モード:
- 容積換算Rb.Checked = True: 容積表示(m³)
- 容積換算Rb.Checked = False: 個数表示(PL, ケース, バラ)
表示項目:
- アイテム数
- PL入荷数/容積
- ケース入荷数/容積
- バラ入荷数/容積
- 横計(合計)
入荷トラック仕様Dgv表示()
機能: トラック仕様データを読み込んで表示
読込元: 入荷スペース計算.xlsx / 荷降ろし時間ユーザ設定
表示設定:
- 列・行ヘッダー非表示
- 読み取り専用
- 数値フォーマット(N0, N1, N2)
- 自動列幅調整
- 列・行の固定(Frozen)
6.3 計算関連
入荷スペース計算開始Bt_Click
イベント: ボタンクリック
処理:
- 入荷スペース計算1()
- GroupBox背景色の切り替え(結果強調)
入荷バースと入荷スペース計算1()
機能: 入荷スペースのメイン計算処理
計算対象:
- 入荷方式1(パレット積載/ケース直積み)
- 入荷方式2(パレット積載/ケース直積み)
- 入荷方式3(パレット積載/ケース直積み)
計算項目: 物量比、物量、トラック内容積、積載率、積載容積、着床台数、着床時間、延べ着床時間、ピーク時着床時間、バース数、待機面積、空PL仮置面積、計算面積計、面積倍率、入荷スペース
出力:
- 入荷バース計: バース数の合計
- 入荷スペース面積: 面積の合計(m²)
6.4 設定変更関連
テキスト集計Bt_Click
機能: 荷降ろし時間の各項目を合計
集計項目:
- トラック着床
- 入荷事務
- 荷降ろし作業
- 検品事務
- トラック離床
- → 荷降ろし計
荷降ろし時間ユーザ設定_修正保存Bt_Click
機能: ユーザーが変更した荷降ろし時間をExcelに保存
処理:
- TextからDgvへ書込()
- 荷降ろし時間ユーザ設定Excel更新()
荷降ろし時間Tera設定Rb_CheckedChanged
機能: ユーザー設定をTera設定(デフォルト)に戻す
確認: MessageBox で確認ダイアログ表示
処理: Tera設定シートのデータをユーザ設定シートにコピー
6.5 補助関数
| 関数名 | 戻り値 | 機能 |
|---|---|---|
| パレット積載容積(車種, 入荷方式) | Double | PL積載数 × PL実積載容積 |
| ケース直積み積載容積(車種, 入荷方式) | Double | トラック仕様から容積を取得 |
| 着床時間(車種, 入荷方式) | Double | 荷降ろし時間を取得(分) |
| 待機面積(車種, 入荷方式, バース数) | Double | トラック面積 × バース数 × 1.5 |
| 空PL仮置面積(車種, 入荷方式, バース数) | Double | (PL面積 × PL数 × バース数) / 5段 |
| 入力値チェック(CC) | Integer | 数値・範囲チェック |
7. 使用方法とワークフロー
7.1 基本的な使用手順
📋 ステップバイステップガイド
- 画面起動
- メインメニューから「入荷スペース」を選択
- 自動的にExcelデータが読み込まれる
- 入荷量確認
- 入荷量Dgvで入荷物量を確認
- 容積換算Rbで表示モード切替可能
- パラメータ設定
- 入荷ピーク時物量比を入力(例: 30%)
- ケース平均寸法を確認(自動計算)
- PL積載率を設定(例: 75%)
- PL実積載容積を確認
- 入荷面積倍率を設定(例: 120%)
- 入荷方式設定(3パターン)
- 各方式で車種を選択
- 積載方式を選択(パレット積載/ケース直積み)
- 物量比率を設定(合計100%になるように)
- トラック積載率を設定
- 計算実行
- 「入荷スペース計算開始」ボタンをクリック
- 計算結果Dgvに結果が表示される
- 結果確認
- 入荷バース計: 必要なバース数
- 入荷スペース面積: 必要な面積(m²)
- 詳細内訳を入荷スペース計算結果Dgvで確認
7.2 荷降ろし時間のカスタマイズ
🔧 カスタマイズ手順
- 「ユーザ設定」ラジオボタンを選択
- 車種選択Cbで対象車種を選択
- 積載方式Cbで方式を選択(パレット積載/ケース直済み)
- 各項目の時間を入力:
- トラック着床Tb
- 入荷事務Tb
- 荷降ろし作業TB
- 検品事務Bt
- トラック離床Tb
- 「テキスト集計」ボタンで合計を計算
- 「荷降ろし時間ユーザ設定_修正保存」ボタンで保存
📌 注意: 保存した設定は入荷スペース計算.xlsxに保存され、次回起動時も有効です。
7.3 Tera設定への復元
⚠️ デフォルト設定への復元
カスタマイズした設定をデフォルト(Tera設定)に戻す場合:
- 「荷降ろし時間Tera設定」ラジオボタンを選択
- 確認ダイアログが表示される
- 「はい」を選択すると、全てのユーザ設定がTera設定で上書きされる
⚠️ 警告: この操作は元に戻せません。カスタマイズした設定は全て失われます。
7.4 計算結果の読み取り
| 表示項目 | 意味 | 単位 |
|---|---|---|
| 物量比% | 全体に占める各入荷方式の割合 | % |
| 物量m3 | 各入荷方式の物量 | m³ |
| トラック内容積 | トラック1台の容積 | m³ |
| トラック積載率% | 実際の積載効率 | % |
| 積載容積/台 | 実質的な積載量 | m³ |
| 着床台数/日 | 1日あたりのトラック台数 | 台 |
| 着床時間/台 | 1台あたりの作業時間 | 分 |
| 延べ着床時間 | 全トラックの作業時間合計 | 分 |
| 着床時間/ピーク時 | ピーク時の作業時間 | 分 |
| バース数 | 必要なバース数 | バース |
| 待機面積 | トラック待機スペース | m² |
| 空PL仮置面積 | 空パレット置場 | m² |
| 計算面積計 | 待機+仮置の合計 | m² |
| 面積倍率 | 余裕率 | - |
| 入荷スペースm2 | 最終的な必要面積 | m² |
7.5 トラブルシューティング
❌ よくあるエラーと対処法
1. ファイルなしエラー
- 原因: 在庫入荷量.xlsx または 入荷スペース計算.xlsx が見つからない
- 対処: Dat保存Path(A-Fドライブ)に Tera計算Data フォルダがあるか確認
2. 計算結果が #DIV/0! エラー
- 原因: 物量が0、または積載容積が0
- 対処: 入荷量データを確認、物量比率が0でないか確認
3. バース数が異常に大きい/小さい
- 原因: ピーク時物量比、積載率、荷降ろし時間の設定ミス
- 対処: 各パラメータを見直す(ピーク時30-50%、積載率70-85%が一般的)
4. 物量比率の合計が100%にならない
- 原因: 3つの入荷方式の物量比率の合計が100%でない
- 対処: 各方式の物量比率を調整して合計100%にする
8. まとめと推奨事項
🎓 T3_2_入荷スペース.vb の特徴
- 高度な計算ロジック: 物流専門知識に基づいた科学的な面積計算
- 柔軟な設定: 3つの入荷方式で様々なケースに対応
- Excel連携: EPPlusライブラリによる高速なデータ処理
- カスタマイズ性: ユーザー独自の荷降ろし時間設定が可能
- 実用性: 実際の物流現場で使用できる精度
8.1 推奨される使用パターン
パターン1: 新規施設設計
計画段階の入荷量から必要スペースを算出し、施設設計に反映
パターン2: 既存施設の検証
現在の入荷量から現状のスペースが適切か検証
パターン3: 増量シミュレーション
将来の入荷量増加に備えた拡張計画の策定
パターン4: 最適化検討
複数の入荷方式を比較し、最も効率的な方法を選択
8.2 開発者向け注意事項
💡 メンテナンスのポイント
- Excelファイル構造: シート名や列の位置を変更する場合は、コード内の参照を全て更新すること
- 計算式の変更: 物流の専門知識が必要。変更前に十分な検証を実施
- EPPlusライブラリ: バージョンアップ時は互換性を確認
- フラグ管理: Dgv表示_チェックフラグの適切な管理が重要
- エラーハンドリング: ファイル存在チェック、数値チェックを徹底
8.3 拡張の可能性
- グラフ表示: 計算結果をグラフで視覚化
- レポート出力: 計算結果をPDFやWordで出力
- 複数パターン比較: 異なる設定での計算結果を並べて比較
- 最適化アルゴリズム: AIによる最適な入荷方式の自動提案
- リアルタイム更新: データベースと連携してリアルタイムに計算
8.4 参考資料
| 資料名 | 内容 |
|---|---|
| 物流施設設計基準 | 物流施設の面積計算基準 |
| EPPlus Documentation | Excel操作ライブラリの公式ドキュメント |
| Tera計算シリーズマニュアル | Tera計算1, 2との連携方法 |
| トラック諸元表 | 各メーカーのトラック仕様データ |