言語の特徴(特にC言語との比較)
変数の宣言方法
'例
Dim i As Integer
' 配列
Dim MyArray(3) As StringDim MyArray() As Integer = {1, 2, 3, 4, 5, 6, 7}グローバル変数の宣言方法
関数(サブモジュールやファンクション)の中で宣言した変数は、その中でしか使えません。他の関数からも使えるようないわゆるグローバル変数の宣言は、コードエディタの最上部に(関数よりも上の部分)に記述すれば、グローバル変数になります。
変数の型
よく使うのを挙げておきます(下記が全てではありません)
構造体
C言語と同様に構造体も宣言できます。
Type 構造体名 フィールド名1 As 型名 フィールド名2 As 型名End Type例)
Type person name As String sex As String age As IntegerEnd TypeDim tanaka as persontanaka.name = "shojo"tanaka.sex = "male"tanaka.age = 50for文
For i = 1 To 10w = w + iNextwhile文
While i < 100 i = i + 1 Wendif文
If w < 100 Thenw = w + iEnd If' elseが入る場合If w < 100 Thenw = w + iElsew =w * iEnd IfIf w < 100 Thenw = w + iElseIf w>1000w =w * iElse w =w % i
End If関数定義と利用方法
VBAでは、C言語における関数に相当するものが二種類あります。
というように戻り値の有無で使い分けます。
Private Sub UserForm_Click() Dim z As Integer test1 6
z = test2(6) MsgBox "ファンクションからの戻り値=" & zEnd SubSub test1(x As Integer) MsgBox "サブにてx= " & xEnd SubFunction test2(x As Integer) Dim y As Integer y = x * 2 test2 = y '戻り値の設定(いわゆるreturnと同義)End Function戻り値の設定については、ファンクションに対して値を代入するというちょっと独特の方法ですので注意してください。
そして、関数の呼び出し方も違いがあります。
'(Subの場合)test1 6'(Functionの場合)z = test2(6)上記2つの違いはわかりますか? test1はSubなので引数を書くところに括弧はありません。一方、test2はFunctionなので括弧があります。後者の書き方はC言語で馴染みがありますが、前者は違和感を感じるかもしれません。注意してください。
プロパティの書き方(上級者向け)
プロパティはPublicな変数を用意するよりも安全かつ便利であるので、プロパティの利用をお勧めする。
Dim MyID As StringPublic Property Let id(v_id As String) MyID = v_idEnd Property Public Property Get id() As String id = MyIDEnd Property