全体の数量から、特定の入数によって箱数とバラ数を計算する関数
を説明します。
● 準備 ●
新規標準モジュールに以下のプロシージャを記述して下さい。
● サンプル ●
'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は整数値で指定して下さい。
|