エクセルVBAで変数を使いこなす方法 | 変数の基本から実践まで

変数を使ってみようアイキャッチ VBA

エクセルVBAを使用するにあたって、変数を使用する意味は何だろう?と悩んだことはありませんか?

お悩みポイント
悩む人
  • VBAをするにあたって、変数という言葉を初めて聞いたが
    どういうものか?分からない。

この記事では、エクセルVBAの変数の使い方について詳しく説明します。

基本的な使い方から応用的なテクニックまで、初心者でもすぐに実践できる内容です。
ぜひ最後までお読みください。


【 この記事の概要 】

  よく使う度    5.0  
  難しさ     2.0  
  覚えておくと安心度    5.0  

この記事を見てできるようになること

この記事を読めば、以下のことができるようになります。

この記事を見てできるようになること

変数とは?

VBAにおける変数は、データを一時的に記憶するための箱のようなものです。
プログラム内でデータを扱う際に、変数を使うことでデータを柔軟に操作できます。

変数の説明を箱を用いて説明

なぜ変数を使用するのか?

プログラムでは、作業を効率化するためにデータを一時的に保存しておく「変数」が欠かせません。
変数を使うことで、データを必要な場所で簡単に再利用でき、プログラム全体をスムーズに動かすことができます。

変数を使うメリット
  • データを保存して再利用
    • 同じデータを何度も使用する場合、変数に格納しておけば、毎回データを入力する手間が省けます
  • コードの見やすさがアップ
    • 変数に名前をつけることで、コードが何をしているかが明確になり、読みやすくなります。
  • データの操作が簡単になる
    • 変数を使うことで、数値の計算や文字列の結合などが簡単に行えます

変数を宣言する重要性

変数は「こういうデータを使うよ!」とあらかじめプログラムに教えてあげる必要があります。
これを「変数を宣言する」と言います。
変数を宣言することで、プログラムが正しく動作し、エラーを減らすことができます。

宣言のメリット
  • ミスを防ぐ
    • 変数を宣言しておけば、入力ミスなどのエラーをすぐに発見できます。
  • メモリの効率化
    • 変数の型を明確に指定することで、プログラムがメモリを効率よく使うようになります。
  • 作業が早くなる
    • 変数を宣言しておくと、VBAエディタの自動補完機能が有効になり、コーディングが効率化されます。

変数の宣言を強制する設定

このことから、変数の宣言を強制するための設定を行うことをお勧めします
この設定を有効にすると、変数を宣言しないとエラーが出るようになります。


1. VBEを開く 
  1)「開発」タブを選択します。 
  2)「Visual Basic」をクリックします。
  ※「Alt」⁺ 「F11」でもOKです。

VBEを開く方法

2. VBEから変数を設定する
  1) VBEの上部「ツール」メニューから「オプション」を選択します。
  2)「エディタ」タブ内の「変数の宣言を強制する」にチェックを入れます。

変数の宣言を強制する設定方法

この設定を有効にすると、自動的にコードの先頭に「Option Explicit」が追加されるようになります。
この表示がされている状態であると、変数を必ず宣言しないとエラーが出るようになります。
※この表示は消さないようにしてください。

Option Explicitが表示されると設定が完了しています

さらに設定しておきたい、おすすめ設定については、別記事にまとめています。
こちらも合わせてご覧ください。
※「イミディエイトウィンドウ」や「ローカルウィンドウ」及び「コメントブロック」などの設定がおすすめです。

各変数の違い

VBAには、さまざまな種類の変数があります。
以下に代表的な変数を紹介します。

種類説明
通常の変数データを一時的に記憶するための箱。
スコープは宣言されたプロシージャ内のみ。
グローバル変数プロジェクト全体で使用可能な変数
モジュールの先頭で宣言され、すべてのプロシージャからアクセス可能。
大規模なプログラムでデータを共有するのに便利。
静的変数プロシージャの間で値を保持する変数
Staticキーワードを使用して宣言され、プロシージャが終了しても値が
保持される。
計算の状態を保持したい場合に使用。
オブジェクト変数オブジェクトを参照するための変数
Setステートメントを使用してオブジェクトを代入し、プロパティや
メソッドにアクセス可能。
エクセルのワークシートやセルなどの操作に使用。

本記事では、通常の変数について解説します。

変数の宣言方法

変数を宣言する際には、Dimステートメントを使用します。

変数の構成

変数の宣言方法は、以下の通りです。

Dimの構成について
解説
  • Dim
    • 変数は、Dimステートメントを使用して宣言します。
  • 変数名
    • 任意の名前をつけることができます。
      プログラム内でこの名前を使用してデータにアクセスします。
      日本語の指定も問題ありません。
      同じ適用範囲内で、同じ名前は使用することができません。
  • As
    • 変数のデータ型を指定するために使用します。
      指定しなければ、変数の型は Variant になります。
  • 変数の型
    • 変数に格納するデータの種類を指定します。
      詳細は、事項で解説を行います。
      例えば、長整数型(Long)、文字列型(String)などがあります。

より詳しい情報は、Microsoft公式 – 変数を宣言するを参照してみてください。

変数の型の種類

VBAでは、変数の型を指定することで、格納するデータの種類を決定します。
主な変数の型は以下の通りです。

たくさんあり、最初は全部覚えるのは大変だと思います。
まず、黄色マーカーのものを覚え、あとは必要に応じて学習していくという方法で問題ありません。

型名説明
Integer整数型。
-32,768から32,767の範囲の整数を格納できます。
Long長整数型。
-2,147,483,648から2,147,483,647の範囲の整数を格納できます。
Single単精度浮動小数点型。
小数点を含む数値を格納できます。
Double倍精度浮動小数点型。
高精度の小数点を含む数値を格納できます。
String文字列型。
文字列を格納できます。
Boolean論理型。
TrueまたはFalseの値を格納できます。
Date日付型。
日付や時刻を格納できます。
Currency通貨型。
通貨値を格納できます。
小数点以下4桁までの数値を格納でき、通貨計算に適しています。
Decimal10進型。
10進数の値を格納でき、固定小数点計算に適しています。
Variant汎用型。
どの型のデータでも格納できますが、他の型よりもメモリを多く使用します。
また、変数の型を宣言しなければ、自動でVariantになります。

変数を使う際の注意ポイント

変数を使用する際には、重要なポイントに気を付ける必要があります。
これを守ることで、プログラムの動作を安定させ、トラブルを未然に防ぐことができます。

  • 適切なデータ型の選択
    • 変数には、可能な限り適切なデータ型を指定しましょう。
      ※Variant型は特別な場合を除いて使用しないようにしましょう。

      適切なデータ型を使わないと、メモリを無駄に使ったり、計算結果が正しくならないことがあります。

変数の使用例

ここでは、具体的なコード例を通じて変数の使い方を紹介します。

使用例1: 変数の宣言を行ってみる

変数の型を使用した宣言方法について紹介します。

Long (長整数型) の使用

Dim Num As Long

このコードは、変数名「Num」を「Long(長整数型)」で宣言し、整数を格納できるようになります。
整数以外 (小数点や文字列) を変数に格納すると、エラーが発生します。

使用例1のLongの処理結果

String (文字列型) の使用

Dim Str As String

このコードは、変数名「Str」を「String(文字列型)」で宣言し、文字列を格納できるようになります。
文字列以外 (小数点や整数) を変数に格納すると、エラーが発生します。

使用例1のString型の処理結果

Variant (汎用型) の使用

Dim temp As Variant

または

Dim temp

このコードは、変数名「temp」を「Variant(汎用型)」で宣言し、整数や文字列などの様々なデータを格納できるようにします。

理由がない限り「Variant(汎用型)」の使用はおすすめしません
「Variant(汎用型)」は多くのメモリを使用し、パフォーマンスが低下する可能性があります

使用例2: 変数を複数宣言して、掛け算を行う

変数を複数宣言し、掛け算を行う方法を紹介します、

変数「Num1」に整数、変数「Num2」に小数点を格納し、変数「Result」に掛け算の結果を格納しています。

Option Explicit

Sub 通常の変数を使用する()
    Dim Num1 As Long
    Dim Num2 As Double
    Dim Result As Long

    Num1 = 10
    Num2 = 1.5
    Result = Num1 * Num2

    MsgBox "結果は " & Result & " です。" & vbCrLf & _
                "" & vbCrLf & _
                "変数:Num1の値は、" & Num1 & "です。" & vbCrLf & _
                "変数:Num2の値は、" & Num2 & "です。"
End Sub
コードの解説
  • Option Explicit
    • 変数を宣言しないと、エラーが出るようになります。
  • Dim Num1 As Long
    • 変数名「Num1」を「Long (長整数型)」で宣言します。
  • Dim Num2 As Double
    • 変数名「Num2」を「Double(倍精度浮動小数点型)」で宣言します。
  • Dim Result As Long
    • 変数名「Result」を「Long長整数型」で宣言します。
  • Num1 = 10
    • 変数名「Num1」に「10」を代入します。
  • Num2 = 20
    • 変数名「Num2」に「20」を代入します。
  • Result = Num1 + Num2
    • 「Num1」と「Num2」を掛け算したものを「Result」に代入します。
  • MsgBox
    • 計算結果をメッセージボックスで表示します。

処理結果は、以下のようなメッセージボックスが表示されるはずです。

使用例2の処理結果

このように、変数を使用することでデータの操作が簡単になり、コードの可読性も向上します。

まとめ

この記事では、VBAにおける変数の基本的な概念、使用方法、および宣言方法について詳しく説明しました。

ポイントのおさらい

さらに学ぶために

変数の基本を理解したら、次のステップとしてグローバル変数、静的変数、オブジェクト変数についても学んでみてください。
それぞれの変数には特定の用途と利点があります。

今回の記事を参考に、VBAでの変数の使用方法をマスターし、業務の効率化を図ってください。
変数を適切に使うことで、VBAプログラミングの力を最大限に発揮できます。

タイトルとURLをコピーしました