19.2.2 COBOLプログラムのデータ型とVisual Basicでの宣言
整数値,文字列,およびユーザ定義型について,Visual BasicとCOBOLのデータ型の対応を,次に示します。
データ型 |
Visual Basic (送り出し側作用対象) |
COBOL (受け取り側作用対象) |
---|---|---|
バイト型 |
Dim a As Byte |
01 a PIC 9(1) COMP-X |
整数型 |
Dim a As Integer |
01 a PIC S9(4) COMP |
長整数型 |
Dim a As Long |
01 a PIC S9(9) COMP |
可変長文字列 |
Dim a As String |
01 a PIC X(n) |
固定長文字列 |
Dim a As String * 10 |
01 a PIC X(n) |
ユーザ定義型 |
Type UserDef x As Integer End Type Dim a As UserDef |
01 a 02 x PIC 9(1) COMP-X |
- バイト型,整数型,長整数型の場合
-
引数を渡す方法として,値渡し(ByVal)と参照渡し(ByRef)を使用できます。
-
値渡しを使用する場合,COBOLプログラムで値を変更しても,Visual Basicのデータ項目の内容には影響を与えません。
-
参照渡しを使用する場合,COBOLプログラムで値を変更すると,Visual Basicのデータ項目の内容も変更されます。
-
- 可変長文字列,固定長文字列の場合
-
引数を渡す方法として,値渡し(ByVal)を使用できません。Visual BasicとCOBOLでの引数の属性は,次の組み合わせとなります。
Visual Basic 値渡し(ByVal) → COBOL参照渡し(BY REFERENCE)
- ユーザ定義型の場合
-
ユーザ定義型は,COBOLの集団項目に対応します。ただし,ユーザ定義型に可変長文字列が含まれる場合,アドレスデータ項目を使用して,ポインタ処理をしなければなりません。