Topic 1: 他のBASICとの違い - VisualBasic

ActiveBasicのVer3・4では,BASICの他に,Cなどの特徴もあります(ポインタが使えたりします)。WindowsAPIなども利用しやすくなっています。
そんなことが出来るのですが,使ってみて,総合すると一番近い言語はVisualBasicなのではと思います(というか,簡単なプログラムならばだいたいの部分はVisualBasicのノリでプログラムを組めます)。
では,ここでActiveBasicを使うとき,VisualBasicのノリでやってはいけないことをお話しします。

注:VBは6.0を前提にしています。VB.NETは持っていないので分かりません。

1.大文字・小文字の区別が厳しい。

もっとも,VBの場合大文字と小文字を区別しないで入力しても勝手に直してくれますが。
おそらく,ABの作者の山本さんがCのノリ(そんな言い方もないか)で作っているからではと思います。
ただし,命令語(Printなど)は大文字・小文字を区別しません。
なお関数の場合,大部分は「最初だけが大文字で残りが小文字」といった具合です。

Dim a As Long, b As Long
a = 7
B = a

2.BASIC特有の文字列関数は必ず最後に"$"が付く。

例えば,Mid("Sinryow", 3, 4) とか Chr(13) とかはABでは通りません。
面倒でも Mid$("Sinryow", 3, 4) とか Chr$(13) として下さい。
(本来のBASICの文法から言えば,付かなかったVBの方が特殊なんですが。)

※追記
VBで「$」があってもなくてもよい関数は,「$」ありではString型,「$」なしではVariant型(どの変数型でも入りうる型)の扱いとなるそうです(情報提供:hiraさん)。

3.(当然だが)似た命令でも仕様が異なるものがある。

ここでは,比較的使用頻度の高いものについて紹介します。

(1)MsgBox
パラメータの順序が違う。しかもVBでは関数の扱いだがABでは命令語の扱い。

(2)Select Case
 選択肢を列挙できない。"Is"が使えない。

Select Case Num
Case 5, 20
    P = 700
Case Is > 32
    P = 0
Case Else
    P = 1000
End Select

(3)InStr
第1パラメータを省略させてくれない(「1」を指定しなければならない)。
そもそもABでは,後ろ側のパラメーターを省略することはできても(Mid$など),手前側のパラメーターは省略させてくれません。

z = InStr("Sinryow Game Home Page", "m")

VB経験者にはこういう面倒さがありますが,それでもVBからの移行は楽なので,VB経験者にはABもぜひ挑戦していただきたいです。
(N88BASIC経験者には,AB2系ならよいのですが,AB3系はけっこう難しいです)

1つ前へ ActiveBasic Hall トップへ ActiveBasic Center トップへ Sinryow Game トップへ