1. 概要
🎯 モジュールの目的
T3_1_手計算方法は、Tera計算3_Utilityソフトウェアにおける「手計算方法」機能を実装するモジュールです。このモジュールは、物流施設レイアウト設計における基本的な計算方法と考え方を表示し、ユーザーが物流計算の基礎を学習できるようにするための教育的な機能を提供します。
1.1 主な特徴
📚 教育ツール
物流計算の基本概念とレイアウト設計の考え方を解説する参照用画面です。
🖥️ シンプルなUI
RichTextBoxを使用した読みやすいテキスト表示で、複雑な操作を必要としません。
🔗 メニュー連携
メインメニューからモーダルダイアログとして起動され、閉じるとメニューに戻ります。
💡 設計思想の共有
Tera計算シリーズ全体の設計思想と使用方法の前提知識を提供します。
1.2 ファイル構成
| ファイル名 | 種類 | サイズ | 説明 |
|---|---|---|---|
| T3_1_手計算方法.vb | Visual Basic Code | 6行 | イベントハンドラを含むメインコード |
| T3_1_手計算方法.Designer.vb | Designer Code | 92行 | UI デザイナー生成コード(フォーム定義) |
| T3_1_手計算方法.resx | Resource File | 151行 | リソースファイル(表示テキスト含む) |
2. アーキテクチャと設計
2.1 クラス構造
📦 T3_1_手計算方法F クラス
継承: System.Windows.Forms.Form
アクセス修飾子: Public
デザイナー生成: Yes(Partial Class)
🔧 メンバー一覧
| 種類 | 名前 | 型 | アクセス | 説明 |
|---|---|---|---|---|
| 🔘 Control | 閉じるBt | Button | Friend | 画面を閉じるボタン |
| 🔘 Control | 使用期限L | Label | Friend | 使用期限表示ラベル |
| 🔘 Control | 著作権L | Label | Friend | 著作権表示ラベル |
| 🔘 Control | RichTextBox1 | RichTextBox | Friend | 説明テキスト表示エリア |
| 📝 Method | 閉じるBt_Click | Sub | Private | 閉じるボタンクリックイベント |
| ⚙️ Method | InitializeComponent | Sub | Private | コンポーネント初期化(デザイナー生成) |
| ⚙️ Method | Dispose | Sub | Protected | リソース解放(オーバーライド) |
2.2 依存関係
📚 参照されている名前空間
System.Windows.Forms- Windows フォームコントロールSystem.Drawing- 色、サイズ、位置などの描画関連System.ComponentModel- コンポーネントモデル(リソース管理)
2.3 実行フロー
1. [メインメニュー] T3_Uty0メニュー.vb ↓ 手計算方法Bt_Click イベント発火 2. [フォーム生成] T3_1_手計算方法F ↓ Dim F As New T3_1_手計算方法F 3. [表示] モーダルダイアログとして表示 ↓ F.ShowDialog(Me) 4. [ユーザー操作] 説明文を読む ↓ RichTextBox1 に表示されたテキストを閲覧 5. [終了] 閉じるボタンクリック ↓ 閉じるBt_Click → Me.Close() 6. [リソース解放] ↓ F.Dispose() 7. [メニューに戻る]
3. UI コンポーネント詳細
3.1 コントロール一覧
3.2 コントロール詳細設定
🔘 閉じるBt (Button)
| プロパティ | 値 | 説明 |
|---|---|---|
| Name | 閉じるBt | コントロールの識別名 |
| Text | "閉じる(メニュー画面に戻る)" | ボタンに表示されるテキスト |
| BackColor | RGB(192, 255, 192) | 淡い緑色(視認性の向上) |
| Location | X=159, Y=826 | 画面下部に配置 |
| Size | 173 x 23 | ボタンサイズ |
| TabIndex | 34 | タブオーダー |
| イベント | Click → 閉じるBt_Click | クリック時に画面を閉じる |
🏷️ 使用期限L (Label)
| プロパティ | 値 | 説明 |
|---|---|---|
| Name | 使用期限L | コントロールの識別名 |
| Text | " 使用期限: 2019/12/31" | 初期表示テキスト(実行時に更新される) |
| AutoSize | True | テキストに合わせて自動サイズ調整 |
| Location | X=1233, Y=831 | 画面右下に配置 |
| TabIndex | 33 | タブオーダー |
🏷️ 著作権L (Label)
| プロパティ | 値 | 説明 |
|---|---|---|
| Name | 著作権L | コントロールの識別名 |
| Text | "物流技術研究所" | 初期表示テキスト(実行時に更新される) |
| Font | MS UI Gothic, 9pt | フォント設定 |
| AutoSize | True | テキストに合わせて自動サイズ調整 |
| Location | X=857, Y=831 | 画面下部中央に配置 |
| TabIndex | 32 | タブオーダー |
📄 RichTextBox1 (RichTextBox)
| プロパティ | 値 | 説明 |
|---|---|---|
| Name | RichTextBox1 | コントロールの識別名 |
| Font | MS UI Gothic, 12pt, Bold | 太字フォントで読みやすく表示 |
| Location | X=66, Y=35 | 画面上部に配置 |
| Size | 682 x 628 | 大きな表示エリア |
| TabIndex | 35 | タブオーダー |
| Text | リソースから読み込み | 手計算方法の説明文(詳細は後述) |
3.3 フォーム設定
| プロパティ | 値 | 説明 |
|---|---|---|
| Name | T3_1_手計算方法F | フォームクラス名 |
| Text | "Tera計算3_1_手計算方法" | ウィンドウタイトルバーに表示 |
| ClientSize | 1484 x 861 | クライアント領域のサイズ |
| AutoScroll | True | 内容が大きい場合、スクロールバー表示 |
| AutoScaleMode | Font | フォントに基づく自動スケーリング |
| AutoScaleDimensions | 6.0F, 12.0F | スケーリング基準値 |
| StartPosition | CenterScreen | 画面中央に表示 |
4. ソースコード詳細分析
4.1 メインコード (T3_1_手計算方法.vb)
Public Class T3_1_手計算方法F Private Sub 閉じるBt_Click(sender As Object, e As EventArgs) Handles 閉じるBt.Click Me.Close() End Sub End Class
📝 コード解説
このモジュールは非常にシンプルな構造です。主要な機能は以下の通りです:
- クラス定義:
T3_1_手計算方法FはSystem.Windows.Forms.Formを継承したフォームクラスです - イベントハンドラ:
閉じるBt_Clickは「閉じる」ボタンがクリックされた時に実行されます - 処理内容:
Me.Close()によりフォームを閉じます
4.2 イベントハンドラ詳細
🔧 閉じるBt_Click メソッド
| 項目 | 内容 |
|---|---|
| アクセス修飾子 | Private - クラス内部からのみアクセス可能 |
| 戻り値 | Sub - 戻り値なし |
| パラメータ |
sender As Object - イベント発生元オブジェクト(この場合は閉じるBt)e As EventArgs - イベント引数
|
| Handles 句 | 閉じるBt.Click - 閉じるボタンのClickイベントに関連付け |
| 処理内容 | Me.Close() - 現在のフォームを閉じる |
4.3 処理フロー詳細
【ユーザー操作】 1. ユーザーが「閉じる(メニュー画面に戻る)」ボタンをクリック ↓ 【イベント発火】 2. 閉じるBt の Click イベントが発火 ↓ 【イベントハンドラ実行】 3. 閉じるBt_Click メソッドが呼び出される - sender: 閉じるBt オブジェクト - e: EventArgs オブジェクト(標準イベント引数) ↓ 【フォームクローズ】 4. Me.Close() が実行される - Me = T3_1_手計算方法F インスタンス - Close() メソッドがフォームを閉じる処理を開始 ↓ 【イベント連鎖】 5. フォームのクローズイベントが発生 - FormClosing イベント(定義されていないため処理なし) - FormClosed イベント(定義されていないため処理なし) ↓ 【呼び出し元に制御が戻る】 6. ShowDialog() から制御が戻る - メニュー画面の手計算方法Bt_Click に戻る ↓ 【リソース解放】 7. F.Dispose() が実行される(メニュー側のコード) - フォームとそのコントロールのリソースを解放 ↓ 【完了】 8. メニュー画面が操作可能な状態に戻る
4.4 表示テキスト内容
📄 RichTextBox1 に表示される説明文
以下のテキストがリソースファイルから読み込まれ、画面に表示されます:
Tera計算3は、Tera計算1(各設備の要求保管量)を前提条件として、 物流機器設備の面積を自分の手で計算するツール集です。 レイアウト設計(配送センターの規模)は、単に面積合計だけでは決まりません。 実際に建屋の縦横有効寸法内に収まるか、柱や防火壁に干渉しないかなど検討し、 建築法や消防法などの関係法案に合致しているか、安全が確保されているか、 作業運用から見て移動距離や荷役方法が適切か、設備投資と投資コストがバランスが良いか。 レイアウト設計は、いろいろな設計要素はあるが、 ここでは 1.配送センターの規模規模を小さくまとめる。 2.前工程と後工程を近づける。 この2点に着目してください。 上記2点を行うために、物流機器設備の縦・横・高さの寸法が必要となります。 Tera計算2の計算方法と手順を参考に、Tera計算3で個々の面積計算方法を学習してください。
⚠️ 重要ポイント
- Tera計算1との関連: このツールは「各設備の要求保管量」を計算するTera計算1の結果を前提としています
- 設計の考え方: 単なる面積計算だけでなく、実際の建屋寸法、法規制、安全性、運用効率、コストなど総合的な検討が必要
- 2つの重点:
- 配送センターの規模を小さくまとめる
- 前工程と後工程を近づける
- Tera計算2との連携: Tera計算2の計算方法と手順を参考にすることを推奨
5. UI設計とレイアウト
5.1 画面レイアウト
📐 画面構成(1484 x 861 ピクセル)
(Tera計算3の目的と使用方法)
5.2 配色設計
| 要素 | 色 | RGB / 説明 |
|---|---|---|
| 閉じるボタン背景 | RGB(192, 255, 192) - 淡い緑色(視認性良好) | |
| フォーム背景 | デフォルト(システムカラー) | |
| RichTextBox 背景 | 白(読みやすさ優先) | |
| フォント色 | 黒(デフォルト、高コントラスト) |
5.3 フォント設計
| 要素 | フォント | サイズ | スタイル |
|---|---|---|---|
| RichTextBox1 | MS UI Gothic | 12pt | Bold(太字) |
| 著作権L | MS UI Gothic | 9pt | Regular |
| 使用期限L | MS UI Gothic | デフォルト | Regular |
| 閉じるBt | MS UI Gothic | デフォルト | Regular |
5.4 ユーザビリティ考慮点
👁️ 視認性
- 大きなフォント(12pt Bold)で読みやすい
- 閉じるボタンは目立つ緑色
- 画面中央配置で見やすい
🖱️ 操作性
- ボタンは十分なサイズ(173x23)
- 説明文が分かりやすい
- スクロール対応で全内容閲覧可能
⌨️ アクセシビリティ
- TabIndex による適切なフォーカス順序
- キーボード操作対応
- モーダルダイアログで明確な操作フロー
📱 レスポンシブ
- AutoScroll で内容に応じてスクロールバー表示
- AutoScaleMode でフォントスケーリング対応
- 大きな画面サイズで快適な閲覧
6. 使用方法とシナリオ
6.1 基本的な使用フロー
📋 ステップバイステップガイド
- メニュー画面から起動
- Tera計算3_Utility のメインメニューを開く
- 「手計算方法」ボタンをクリック
- 説明文を読む
- 表示された手計算方法の説明を読む
- 必要に応じてスクロールして全文を確認
- 内容を理解する
- Tera計算3の目的を理解する
- レイアウト設計の考え方を学ぶ
- 2つの重点ポイントを把握する
- 画面を閉じる
- 「閉じる(メニュー画面に戻る)」ボタンをクリック
- メニュー画面に戻る
6.2 使用シナリオ
シナリオ1: 初めてのユーザー(学習目的)
状況: Tera計算3を初めて使用する物流担当者
目的: ソフトウェアの使用方法と物流計算の基礎を理解する
手順:
- ソフトウェアを起動し、メニュー画面を確認
- 最初に「手計算方法」を選択して説明を読む
- Tera計算1、Tera計算2との関連を理解
- レイアウト設計における2つの重点を把握
- 他の機能(入荷スペース、出荷スペースなど)を試す前の前提知識を獲得
効果: ソフトウェア全体の使用目的と各機能の位置づけを理解できる
シナリオ2: 既存ユーザー(復習目的)
状況: Tera計算3を使用しているが、計算の意味を再確認したい
目的: 設計の考え方を再確認する
手順:
- 実際の計算作業の前に「手計算方法」を確認
- 「規模を小さくまとめる」「前工程と後工程を近づける」という重点を再認識
- この考え方を念頭に置いて計算を実施
効果: より効果的なレイアウト設計が可能になる
6.3 関連機能との連携
| 連携先機能 | 関連性 | 推奨使用順序 |
|---|---|---|
| 入荷スペース計算 | 手計算方法で学んだ考え方を実際の計算に適用 | 手計算方法 → 入荷スペース計算 |
| 出荷スペース計算 | 前工程と後工程を近づける考え方を実践 | 手計算方法 → 出荷スペース計算 |
| パレット積付計算 | 規模を小さくまとめるための具体的手法 | 手計算方法 → パレット積付計算 |
| トラック軌跡計算 | 建屋寸法との関係を検討する際に活用 | 手計算方法 → トラック軌跡計算 |
7. カスタマイズと拡張
7.1 表示テキストのカスタマイズ
⚙️ リソースファイルの編集
表示される説明文を変更する場合は、T3_1_手計算方法.resx ファイルを編集します。
手順:
- Visual Studio でプロジェクトを開く
- ソリューションエクスプローラーで
T3_1_手計算方法.resxを開く RichTextBox1.Textリソースを見つける- テキストを編集して保存
- プロジェクトを再ビルド
注意: リソースファイルを直接XMLエディタで編集することも可能ですが、Visual Studio のリソースエディタを使用することを推奨します。
7.2 機能拡張の提案
拡張案1: 画像の追加
' PictureBox を追加して図解を表示 Friend WithEvents 図解Pb As PictureBox ' Load イベントで画像を読み込む Private Sub T3_1_手計算方法F_Load(sender As Object, e As EventArgs) Handles MyBase.Load 図解Pb.ImageLocation = MyPath & "\レイアウト設計概念図.jpg" 図解Pb.SizeMode = PictureBoxSizeMode.Zoom End Sub
拡張案2: 印刷機能
' 印刷ボタンを追加 Friend WithEvents 印刷Bt As Button ' 印刷処理 Private Sub 印刷Bt_Click(sender As Object, e As EventArgs) Handles 印刷Bt.Click Dim pd As New PrintDocument() AddHandler pd.PrintPage, AddressOf PrintDocument_PrintPage pd.Print() End Sub Private Sub PrintDocument_PrintPage(sender As Object, e As PrintPageEventArgs) ' RichTextBox の内容を印刷 e.Graphics.DrawString(RichTextBox1.Text, RichTextBox1.Font, Brushes.Black, 50, 50) End Sub
拡張案3: PDF出力
' PDF出力ボタンを追加(iTextSharp などのライブラリ使用) Private Sub PDF出力Bt_Click(sender As Object, e As EventArgs) Handles PDF出力Bt.Click Dim saveDialog As New SaveFileDialog() saveDialog.Filter = "PDF ファイル|*.pdf" If saveDialog.ShowDialog() = DialogResult.OK Then ' PDF生成処理(ライブラリ依存) ExportToPDF(RichTextBox1.Text, saveDialog.FileName) End If End Sub
拡張案4: ハイパーリンク
' RichTextBox にハイパーリンクを追加 Private Sub T3_1_手計算方法F_Load(sender As Object, e As EventArgs) Handles MyBase.Load RichTextBox1.DetectUrls = True AddHandler RichTextBox1.LinkClicked, AddressOf RichTextBox1_LinkClicked End Sub Private Sub RichTextBox1_LinkClicked(sender As Object, e As LinkClickedEventArgs) Process.Start(e.LinkText) End Sub
7.3 デザインのカスタマイズ
| カスタマイズ項目 | 変更方法 | 推奨設定 |
|---|---|---|
| ウィンドウサイズ | ClientSize プロパティ | 画面解像度に応じて調整(1280x720 以上) |
| フォントサイズ | RichTextBox1.Font | 10pt~14pt(視認性重視) |
| 背景色 | BackColor プロパティ | 淡い色(目の負担軽減) |
| ボタン配置 | Location プロパティ | 画面下部中央(操作しやすい位置) |
7.4 国際化対応
🌏 多言語対応の実装
リソースファイルを使用しているため、多言語対応が容易です:
- 各言語用の .resx ファイルを作成(例: T3_1_手計算方法.en-US.resx)
- 各言語のテキストを設定
- 実行時にカルチャに応じて適切なリソースを読み込む
8. ベストプラクティスとメンテナンス
8.1 コーディング規約
✅ 推奨事項
- 命名規則: 日本語変数名を使用する場合は一貫性を保つ
- コメント: 複雑な処理には適切なコメントを追加
- エラー処理: Try-Catch ブロックで例外処理を実装
- リソース管理: Using ステートメントでリソースを適切に解放
8.2 パフォーマンス最適化
| 項目 | 現状 | 最適化案 |
|---|---|---|
| テキスト読み込み | リソースから一括読み込み | 問題なし(軽量なテキストデータ) |
| フォーム表示 | ShowDialog() でモーダル表示 | 問題なし(適切な方法) |
| リソース解放 | Dispose() で明示的に解放 | 問題なし(推奨パターン) |
8.3 テスト項目
🧪 単体テスト項目
- 表示テスト: フォームが正しく表示されるか
- テキスト表示テスト: RichTextBox に正しいテキストが表示されるか
- ボタン動作テスト: 閉じるボタンが正しく機能するか
- リソース解放テスト: フォームが正しく破棄されるか
- スクロールテスト: 内容が多い場合にスクロールが機能するか
8.4 バージョン管理
' バージョン情報をコメントで記録 ' Version 1.0.0 - 2025/01/XX - 初版作成 ' Version 1.0.1 - 2025/XX/XX - テキスト内容更新 ' Version 1.1.0 - 2025/XX/XX - 印刷機能追加 Public Class T3_1_手計算方法F Private Const VERSION As String = "1.0.0" ' ... コード ... End Class
8.5 ドキュメント管理
- コード内ドキュメント: XML コメントを使用してメソッドを文書化
- 外部ドキュメント: このHTML仕様書を最新に保つ
- 変更履歴: 変更内容を記録する
- ユーザーマニュアル: エンドユーザー向けの簡易マニュアル作成
9. まとめ
🎓 T3_1_手計算方法.vb の特徴
- シンプルな設計: 1つのイベントハンドラのみで構成される簡潔なコード
- 教育的価値: 物流計算の基礎と設計思想を提供
- ユーザーフレンドリー: 読みやすいテキスト表示と直感的な操作
- 拡張性: 必要に応じて機能追加が容易な構造
9.1 技術的ポイント
📌 クラス設計
Form を継承したシンプルなクラス構造で、保守性が高い
📌 リソース管理
.resx ファイルによるテキスト管理で、国際化対応が容易
📌 イベント駆動
標準的な Windows Forms イベントモデルに準拠
📌 UI/UX
大きなフォント、適切な配色で視認性と操作性を確保
9.2 開発者へのアドバイス
💡 開発・保守時の注意点
- テキスト内容を変更する際は、必ずリソースファイルを編集する
- コードを直接編集する場合は、Designer.vb ファイルは自動生成なので注意
- 新しいコントロールを追加する場合は、Designer で行うことを推奨
- カスタマイズ後は必ず動作確認を行う
- バージョン管理システム(Git等)を使用して変更履歴を記録する
9.3 参考資料
| 資料名 | 内容 |
|---|---|
| Microsoft Docs - Windows Forms | Windows Forms の公式ドキュメント |
| Visual Basic .NET Language Reference | VB.NET 言語リファレンス |
| Tera計算3_Utility 総合マニュアル | ソフトウェア全体の使用方法 |
| 物流施設設計基準 | 物流計算の理論的背景 |