ファイルの属性やキーを指定するような語句はありません。
COBOLでいう数値型ですね。VBでは”数値”という型はありますが、桁数は指定できません。
整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)があります。
桁数(範囲)を超える数値を格納すると「オーバーフローしました」とエラーになってしまいます。
整数型 Integer -32,768 〜 32,767 の範囲の整数を表すデータ型 長整数型 Long -2,147,483,648 〜 2,147,483,647の範囲の整数を表すデータ型 通貨型 Currency -922,337,203,685,477.5808 〜 922,337,203,685,477.5807 の範囲のデータ型 単精度浮動小数点型 Single 負の値の場合は-3.402823E38 〜 -1.401298E-45、正の値の場合は、1.401298E-45 〜 3.402823E38 を表す事ができるデータ型 倍精度浮動小数点型 Double 負の値の場合、有効範囲は -1.79769313486232E308 〜 -4.94065645841247E-324。正の値の場合、有効範囲は 4.94065645841247E-324 〜 1.79769313486232E308 を表す事ができるデータ型
文字を格納するデータ型は「String」(文字列型)です。
この型は桁数を指定する事ができます。
ありません。String型で表します。
う〜ん・・・ユーザー定義型はありますけどね、無いと思った方がいいのではないでしょうか。
ユーザー定義型は変数にはあまり使いません(というか使った事無い)、主にファイルの構造定義で使います。型定義
Public Type Toku_Cd
sTokucd1 As String * 2
sTokucd2 As String * 5
sTokucd3 As String * 1
End Type
Public Type Toku_Rec
sTokucd As Toku_Cd
sTokuNm As String * 20
lUriZan As Long
lSeiZan As Long
End Type
実際に使う時の変数の取り方
Dim Toku As Toku_Rec
項目の代入の仕方
Toku.sTokuNm = "株式会社○○箪笥"
ありません。
変数定義時に初期値を持たせてもCOBOLだと後で変更できますが、VBでは変更できません。なんてったって定数宣言なんですから。
Public Constpbc_str = "初期値です"
Dim wk(10) As String
こう書くとwkという変数が0〜10迄の配列で取られます。計11個ですね。0から始まるなんてイヤだ!と言われる方は
Dim wk(1 To 10) As String
としましょう、これで1〜10迄、計10個です。
Dimwk()As String
なんとこんな書き方をしてもOKです。この場合、この変数を使う前に
ReDim wk(10)
として配列数を指定しなければいけません。
MOVE A TO B
COBOLだとAをBへ代入ですね。VBだと
B = A
と位置が反対になります。
PERFORM UNTIL SW-OK = 1
・
・
END PERFORM
は
Do Until sw_ok = 1
・
Loop
と書きます。ちなみに後判定は
Do
・
Loop Until sw_ok = 1
となります。どちらもループを抜けるにはExit Doを使用します。
PERFORM VARYING IX1 FROM 1 BY 1
UNTIL IX1 > 10
・
END PERFORM
は
Forix1 = 1 To 10 Step 1
・
Next
と書きます。Stepは省略可能で、デフォルトは”1”です。
ループを抜けるにはExit Forを使用します。
Thenは強制されます。
大事なのはCOBOLの場合
IF A = 1 OR 2
・
END-IF
と書いても A =1 OR A=2 と判定されますが、VBの場合
IfA = 1 Or 2 Then
・
End if
と書くと A=1 OR 2(2は2であるか?)となってしまいます。2が2である事は当然なので常に真(TRUE)となり、思ったような動作が得られず長い時間悩む事になります。
If A = 1 Or A=2 Then
・
End if
と書けばいいのですけどね。
何もしないのだから、何もかかないのです。
If A = 1 Or A=2 Then
Else
・
End if
EVALUATE A
WHEN 1
WHEN 2
処理1
WHEN 3
処理2
WHEN OTHER
処理3
END-EVALUATE
は
Select Case A
Case 1,2
処理1
Case 3
処理2
Case Else
処理3
End select
となります。
Select CaseA
Case 1 To 10 '1以上10以下
処理1
Case 11 To 20 '11以上20以下
処理2
Case Else '以外
処理3
End select
と範囲を指定する事もできます。COBOLでいう EVALUATE TRUE ですね。
COMPUTEと書かないだけで、数式をそのまま書きます。
COMPUTE A = B + C - D * E / F
は
A = B + C - D * E / F
となります。
ADD,SUBTRACT,DIVIDE に当たるものは存在しません。