4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excel VBA入門 ~その3 基礎1~

Last updated at Posted at 2021-10-26

VBAが嫌いな人が書いたVBA入門記事その3です。初心者の人も最低限だけ身に付けてPythonに移行しましょう。→VBAユーザーのためのPython入門 ~xlwingsでExcelからPythonを呼び出す~

記事一覧

プロシージャー

Sub プロシージャー名End Subの単位で呼び出すことができる。

Sub test()
    Dim msg As String
    msg = "hello"
    Debug.Print msg
End Sub

変数

変数は値やオブジェクト(後述)を入れておくための箱。上記のDim msg As Stringで変数msgを宣言し、msg = "hello"msgに値を代入。

データ型

変数入る値の種類(数値、文字、日付、ワークシート等)をという。型には値型参照型の2種類がある。

Dim i as Long
i = 1000   '値型の例

Dim rg as Range
Set rg = Range("A2")   '参照型の例

値型

変数名 = 値で代入する。代表的な型は以下のとおり:

名前 説明
String 文字列型 任意の長さの文字
Long 長整数型 「Integerが無いようだが?」「あんなの飾りです。偉い人にはそれが分からんのですよ。」
Double 浮動小数点型 実数のこと
「Singleが無い(ry?」「あんなの(ry」
Boolean ブール型 真偽値(TrueまたはFalse)
Date 日付型 日付時刻を表す

参照型

Set 変数名 = 値で代入する(使い分ける必要があるのか…)。オブジェクトを代入する際に使用する。オブジェクトの種類には、ワークシートを表すWorksheet型、セル範囲を表すRange型、テーブルを表すListObject型等、値型と違って無数にある。値型以外のものはすべてオブジェクトと覚えておいてよい。

四則演算

演算子 処理 備考
+ 加算
- 減算
* 乗算
/ 除算
\ 除算の商
Mod 除算の余り
^ べき乗

制御構文

If文と比較演算子

If文

If 条件式 ThenEnd Ifで、条件にあった場合、ThenEnd If部分が実行される。複数のElse Ifで二つ目の条件を、Elseでいずれの条件にも合致しない場合の処理を実行できる。

If x = "犬" Then
    処理1
Else IF x = "猫" Then
    処理2
Else
    処理3
End If

比較演算子

下記の比較演算子の結果を論理演算子(And, Or, Not等)および括弧((, ))でつなげて、条件式を作る。

演算子 説明
= 左辺と右辺は等しい
<> 左辺と右辺は等しくない
< 左辺は右辺より小さい
<= 左辺は右辺以下
> 左辺は右辺より大きい
>= 左辺は右辺以上
Like 左辺は右辺で指定したパターンを持つ →Link
Is 左辺と右辺が同じオブジェクトを参照している →Link

Select Case文

Select Case文を使えば、同じ変数に対する複数の条件をより簡潔に記述できる。→Link

基本

Select Case x
    Case "犬"
        処理1
    Case "猫"
        処理2
    Case Else
        処理3
End Select

複数の値

Select Case x
    Case "犬", "狼"
        処理1
    Case "猫", "ライオン"
        処理2
    Case Else
        処理3
End Select

To で範囲指定

Select Case age
    Case 0 To 10
        処理1
    Case 11 to 20
        処理2
    Case Else
        処理3
End Select

Is 比較演算子

Select Case age
    Case Is >= 0, Is <= 10
        処理1
    Case Is >= 11, Is <= 20
        処理2
    Case Else
        処理3
End Select

For Each文

コレクションに含まれる各オブジェクトに対して、繰り返し処理を行う。ループを途中で抜ける場合にはExit Forを使う。

For Each 要素 In コレクション
    繰り返し処理
    If 終了条件 Then
        Exit For
    End If
Next

配列に対して繰り返し処理を行うには、For文を使う:

For i = 1 to Ubound(配列)
    繰り返し処理
Next
4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?