0
0

More than 1 year has passed since last update.

書き方思い出したい人用vba記述メモ

Last updated at Posted at 2022-12-15

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0