VBAコード一覧
注意1:VBのコードブロックで記載しているため、一部赤線がありますが、VBAでは問題ない書き方です。
注意2:以前のアカウントを削除して記事の再掲をしました。
プロシージャ作成
- Sub
Public Sub Main()
Dim Num As Integer
Dim Back As String
Dim DataArr() As String
'プロシージャの呼び出し
Back = Addin(DataArr(),Num)
'戻り値がない場合
Call Addin(DataArr(),Num)
End Sub
- Function
Private Function Addin(ByRef DataArr() As Range, Optional ByVal Num As Integer As Range)
'プロシージャ名に値を代入すると戻り値になる
Addin = "戻り値の設定"
End Function
SubとFunctionの違い
-Functionは戻り値が設定できるが、Subはできない
-Subはフォームコントロール(ボタンなど)にマクロを設定できるが、Functionはできない
※Mainの処理はSubで、サブの処理や何度も使用する処理はFunctionで作成すると良い
プロシージャの参照範囲
Public :他のモジュールから参照できる
Private:同じモジュール内しか参照できない
引数の引用方法
ByVal :値渡し。データのみを渡す。
ByRef :参照渡し。データがあるアドレスを渡す。
渡し先で値が変更されると、渡し元も値が変更される。
Optional:使用しなくてもいい引数に設定する。
本来は、引数を全て指定しないとプロシージャは使用できないが、
これを使うと指定しなくてもにプロシージャが動作する。
※Optionalは複数設定できるが、必ず後ろに設定する必要がある。
主なデータ型と条件の書き方
-Integer
-Long
-String
-Variant
-Range(オブジェクト)
-WorkSheet(オブジェクト)
-WorkBook(オブジェクト)
'データ宣言と代入
Dim Sample As Integer
Sample = 2
'オブジェクトの場合
Dim Sample As Range
Set Sample = Cells(1,1)
'If (※比較は”=”一つで良い)
If Sample = 24 Then
Sample = 1
ElseIf Not(Sample Is Nothin)Then
Sample = 2
Else
Sample = 3
End If
'For
For Sample = 2 To 100
Cells(1,Sample) = "Test"
Next
'減少&途中抜けパターン
For Sample = 100 To 2 Step -2
If Cells(1,Sample) = 1 Then
Exit For
End If
Next
'Do While
Sample = 2
Do While(Sample < 100)
If Cell(Sample,1) = 24 Then
Exit Do
End If
Sample = Sample + 1
Loop
'Select Case
Select Case Sample
Case 1
'〜write code〜
Case Is < 5
'〜write code〜
Case Else
'〜write code〜
End Select