全体の数量から「箱数」や「バラ数」を計算する関数

  全体の数量から、特定の入数によって箱数とバラ数を計算する関数
を説明します。


● 準備 ●

  新規標準モジュールに以下のプロシージャを記述して下さい。


● サンプル ●

'Package関数用の列挙型パラメータ
Public Enum UnitType
    pkDozen = 12        'ダース
    pkHalfDozen = 6     '半ダース
    pkCarton = 10       'カートン
End Enum

'Package関数の戻り値用のユーザー定義型
Private Type Pac
    Box    As Long
    Number As Long
End Type


'箱数(単位数)を算出する関数
'【引数説明】
'Amount     箱数を算出する元になる全体数量
'Unit       1箱(1単位)の数。入数
'【戻り値説明】
'Box        箱数
'Number     バラ数

Public Function Package(Amount As Long, Unit As UnitType) As Pac
    Package.Box = Amount \ Unit
    Package.Number = Amount Mod Unit
End Function


'動作確認用プロシージャ
Private Sub TestPackage()
    Dim A As Pac
    A = Package(88, pkDozen)
    Debug.Print A.Box
    Debug.Print A.Number
End Sub


● 動作確認 ●

  動作確認用プロシージャ「TestPackage」を実行し、イミディエイト
ウィンドウに「7」と「4」が表示されていることを確認して下さい。

● 詳細 ●

  サンプルでは引数UnitにEnumステートメントで宣言した定数を使っています。
今回は一般的だと思われるダース・半ダース・カートンが定数として宣言され
ていますが、数値を指定することも可能です。
  また、戻り値にはユーザー定義型Pacが使用されていますので、関数の戻り値
を参照する際には注意が必要です。

  実際の処理は非常に単純で、\演算子を使って剰余を除いた整数部分を取得し、
Mod演算子を使って剰余部分を取得しています。


■■ 注意 ■■
  Access97にはEnumステートメントが実装されていません。ですからAccess97
以前のバージョンでサンプルを実行する場合、Enumブロックを削除し、引数Unit
の変数型をLong型に関数呼び出し時の引数ClearTypeは整数値で指定して下さい。

Access97/2000



戻る


Excel Word Access VBA! モーグ