Excelマクロ&vba | 変数とは?
本ブログは、著者国本温子さんの『Excelマクロ&vba[実践ビジネス入門講座]』を解説させて頂くブログとなります。
変数とは
エクセルマクロにおける変数とは、値を入れておく箱と説明されることが多いです。
日常会話で例えるならば、『i Phone 13』という値を『スマホ』という箱に入れておくと、
「私のスマホが~」と会話した場合、スマホという言葉が意味するのは、
androidでもなく、i Phone SEでもなく、i Phone 13になるというようなイメージです。
変数の宣言とデータ型
エクセルマクロで変数を使用する際、変数名とデータ型を宣言する必要があります。
データ型や宣言という言葉が出てきて「??」となっているかもしれませんが、
詳しく解説します。
Dim 変数名 As データ型
変数名= ○○
これが変数を使う際のコードとなります。
この変数名に入る値は基本的には何でも良いので、自分が分かりやすい名前を付けます。(プログラミングの世界では、英単語を使うことが多いです。)
データ型は、いくつかの型が用意されていますので、後程紹介します。
これらを料理に例えると、
Dim 麻婆豆腐 As 中華料理
麻婆豆腐 = 挽肉と赤唐辛子・花椒(ホアジャオ、山椒の同属異種)・豆板醤(トウバンジャン、豆瓣醤)、豆豉(豆豉)などを炒め、鶏がらスープを入れ豆腐を煮た料理。
(wikipediaより引用)
このように、麻婆豆腐は中華料理というデータ型で、麻婆豆腐とは○○と記述するイメージです。
宣言する方法をご紹介したので、次にデータ型をご紹介します。
データ型には様々な種類がありますが、初めに覚えるのは5つだけでよいです。
データ型:Long・・・変数に数値を入れる場合に使用
データ型:String・・・変数に文字列を入れる場合に使用
データ型:Worksheet・・・変数にワークシートを入れる場合に使用
データ型:Workbook・・・変数にワークブックを入れる場合に使用
データ型:Range・・・変数にセル範囲を入れる場合に使用
上記の2つのみ覚えていれば、初めは問題ないと思います。
実例
Dim tax as Long
tax = 0.1
Dim i as Long
i = Range("A1")
i はセルA1に入っている数値となります。(A1セルに文字が入っている場合、エラーになります)
dim tax as String
tax = "消費税"
(文字列を書く場合は、ダブルクォーテーションで囲います。)
dim tax as String
tax = Range("A1")
ちなみにdim と as は小文字で打っても大文字に自動変換されるので、
小文字で打っても構いません。
オブジェクト変数に変数を入れる場合
上記では、
Dim 変数名 As データ型
変数名= ○○
と記述すれば良いと解説しましたが、実は例外があります。
worksheet,workbook,rangeのデータ型の場合、
Dim 変数名 As データ型
Set 変数名= ○○
と「Set」を追記しなければなりません。
実例
dim ws1 as Worksheet
Set ws1 = Worksheets("シート1")
Worksheetの場合、
()の中にはダブルクォーテーションで囲ったシート名を入力するか、数値を入力します。
数値を入れると、左から数えて何番目のシートという意味になるので、
シート名を書かずに楽に記述することができます。
覚えなくてよいもの
初心者が覚えなくてよいものは、
プロシージャレベル変数やモジュールレベル変数の違いです。
これらは実務ではあまり区別することはありませんので、
気にせず勉強を進めましょう。
また定数(Const) も、あまり使用することがないので、気にせず進めましょう。
エクセルマクロに関する内容をyoutubeで発信しています。
ぜひご覧ください!
ブログの解説本 Excelマクロ&vba[実践ビジネス入門講座]はこちら