LONERさんのブログ
ブログ
Excel VBA スペースインベーダの変数宣言
さっきから、スペースインベーダのコードを読んでいます。変数宣言のところに
Dim d%, DD&
Dim W&, H&, z&, BW&
Dim x&, y&, i&, P&, j&, v&, OFS&
Dim st$
Const EMOVEMTIME& = 750 ' 敵が動くのにかかる時間
Const MSPEED& = 1 ' 自分の速度
Dim rc&, i&, Co&, Index&, st$, WCaption$, WClass$
Dim hWnd&
Dim retStr$
なんてのがあるわけです。さてこれナニモノ?
旧BASIC時代(BASICがOSらしき機能まで請け負っていた時代とDOS-BASIC時代とあり、とくに前者の時代)に、メモリ容量は非常に少ない(何K)時代からBASICは始まりました。その時は変数もI、Aとか1文字で済ましているケースが多くて、変数の型宣言も1文字を変数の後にくっ付けて行う約束になっていました。
http://okwave.jp/qa/q457266.html
ということで、現在変数名を1文字にすることで効果があるかどうかはまたナゾですが、記号の意味は次のようになっているようです。
$が可変ストリング(文字列)
%が整変数
!が単精度数
#が倍精度数
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_050_06.htmlによると、ExcelVBA で使えるのは
' 文字列型
Dim A As String ' 0~2GB
Dim B As String * 10 ' 10文字に限定
' 整数型
Dim C As Integer
' -32,768~32,767の範囲
Dim D As Long
' -2,147,483,648~2,147,483,647の範囲
' 実数型
Dim E As Single
' -3.402823E38~-1.401298E-45(負),
' 1.401298E-45~3.402823E38(正)の範囲
Dim F As Double
' -1.79769313486232E308
' ~-4.94065645841247E-324(負),
' 4.94065645841247E-324
' ~1.79769313486232E308(正)の範囲
' 通貨型
Dim G As Currency
' -922,337,203,685,477.5808
' ~922,337,203,685,477.5807
' バイト型
Dim H As Byte ' 0~255の範囲
' ブール型
Dim I As Boolean ' 真(True)又は偽(False)
' 日付型
Dim J As Date
' 西暦100年1月1日~西暦9999年12月31日
' バリアント型
Dim K As Variant
なので、$ が String、! が Single、# が Double となる。% は Integer? Byte? Long?
http://app.m-cocolog.jp/t/typecast/654919/550472/69065397に、もっと明快に書いてあった。
Dim i% 'Integer型
Dim l& 'Long型
Dim s! 'Single型
Dim d# 'Double型
Dim str$ 'String型
まさに省力化。Visual Basic 2010 でも使えるのかな・・・。
コメントを書く
コメントを投稿するには、ログイン(無料会員登録)が必要です。