ALL EXCEL Program VBA

【解説付】VBA-変数とは何だ?│完全理解│【EXCEL VBA】

本記事で出来ること 

本記事では以下のことが分かります。
 
-分かること-
EXCEL-VBAで"変数"を理解できる(はず)。

本記事の信頼性

筆者はEXCEL-VBAで年間1億円のコストカットを所属企業で実現しています。
 
VBA独学時に様々な参考書で学習しましたが、
理解が出来なくて挫折しかけた経験をモットーに、
過去の自分のために 理解しやすい内容にアレンジして説明します。
 
筆者は本投稿で説明する内容の理解具合で、
Crowd Worksで実際にVBA商品を納品していますので、
ご安心して 内容を確認ください。

変数とは?

変数はVBAを使いこなすうえで切っても切れないものです。
変数を使いこなせることが出来れば、良いことが増えます。  
<変数を使いこなせると良いこと>
長いコードを省略できる
 └効果:コーディングが早くなる=楽できる
For~Nextが使用できる
 └効果:ループ処理が出来る=楽できる  
IEブラウザを制御できる
 └効果:Webスクレイピングができる=楽できる
すべては「楽できる」につながります。

それでは変数とは何だ? につながりますが、
変数とは データを取り置く箱(保管BOX) であり、

その箱の形状のことを 型(かた) と呼んでいます。

変数が”箱”の意味

変数には情報を 取り置いておけます。

EXCELでは「文字列」や「数字」を扱うことが大半ですが、
その情報を 箱 = 変数に取り置いておくことができます。

またオブジェクトも取り置いておけます。
(オブジェクトの説明は後述します)
 
 
 
格納する情報によって
変数(保存BOX)の 型(容器)は変わる・・・ということを覚えておきましょう。

これはVBA側のルールとなり
型(容器)を用意することで自然に情報が整理が出来る、といった配慮らしいです。

オブジェクトって何?

"変数"の理解で、筆者が はじめに躓いたオブジェクトの理解。
 
よくオブジェクト変数 とか言われたりしますが、
オブジェクトって何なのさ?と思う方が大半かと。
 
筆者は このくらいの理解でオブジェクトを乗り越えました。
そして、このくらいの理解で十分です。
 
オブジェクトとは
・様々なパーツ(情報)をまとめた集合体
 
オブジェクトの具体例は↓の通り。
 
 
オブジェクトとは、様々なパーツ(情報)をまとめた集合体 ということですから、
これらのオブジェクトは分解できるということです。
 
<オブジェクト具体例を分解してみる>
EXCEL本体  = EXCELブック+EXCELシート+セル
EXCELシート = EXCELシート+セル
IEブラウザ   = IEブラウザ+HTML情報+画像・・・等
 
各パーツの集合体が オブジェクト っていうことですね。
そして、そのオブジェクトが格納された変数のことオブジェクト変数と呼びます。

最初に覚えておく変数の種類は4つ

繰り返しになりますが、VBAでは格納する情報に応じて、
変数(保存BOX)の型(かた)を変更してあげる必要があります。
 
しかし、型(かた)は無数にあるので、
初めに覚えておくものは、まずは4つのみで十分です。
 
★覚えておく型 4つ★
<型>  <格納できるデータ>
Object  EXCEL等のオブジェクト
String    文字列
Long       数字
Variant   全てのデータ

コラム:変数の種類一覧

暗記は不要です。
誰かが記載したVBAコードを読み解くときに、
事前に知っていれば 面を食らわない という程度なので、
頭の片隅にでも置いてもらえれば良いかと。

頻繁にしている可能性が高いものを紹介します。

 

型の名称 型の指定文字 入れることができるデータ範囲
バリアント型 Variant すべてのデータ(型指定を省略するとこの型が自動で指定される)
文字列型 String 任意の長さの文字列
長整数型 Long -2,147,483,648~2,147,483,647の整数
ブール型 Boolean TrueまたはFalse
日付型 Date 日付:西暦100年1月1日~西暦9999年12月31日時刻:0:00:00 ~ 23:59:59
整数型 Integer -32,768~32,767の整数
単精度浮動小数点数型 Single 負の値:約-3.4×10(38乗)~-1.4×10(-45乗)正の値:約1.4×10(-45乗)~1.8×10(38乗)
倍精度浮動小数点数型 Double 負の値:約-1.8×10(308乗)~-4.0×10(-324乗)正の値:約4.9×10(-324乗)~1.8×10(308乗)
オブジェクト型 Object オブジェクト(EXCEL本体やIEブラウザなど)
 
尚、上記変数一覧は MicroSoft社が提供するMicrosoft Docsより説明されている
『データ型の概要』を元に サマライズしたものとなります。

変数の使用方法

①事前に変数を宣言(Dim)する

変数の型は事前に宣言して使用します。
変数は事前に宣言することで、『変数の名称』と『型(かた)』を指定できます。
 ※宣言しなくても利用できますが視認性が最悪になるため説明しません。
 
<変数の宣言 方法>
 Dim 変数の名称 As データ型
 
実際に変数を宣言している、VBEの画面を確認してしてみましょう。
 
 
 

②変数への格納方法

変数への格納方法は、図の通り。
オブジェクトを格納するときは 頭文字に Set を付ける、と覚えれば良いです。
 
<変数の格納方法>
Object型の場合
 Set 変数の名称 = 格納したいオブジェクト
 
Object型で無い場合
 変数の名称 = 格納したい値  
 
 
 

③変数から取り出す方法

取り出す方法も図に落としました。
 
オブジェクト変数から情報を取り出す際は 注意が必要です。
図のコードを見て理解を深めましょう。 
 
 
オブジェクト変数から情報を取り出す時の理解方法は、
難しく感じるかもしれません。
 
筆者の覚え方としては、
オブジェクト変数は 情報パーツの集合体(複数形)だから、
利用するパーツを指定(単一系に)してあげないと情報は取り出せない・・・という理解で対応してます。
 
この考え方で対応できなかった場合は、Twitterから連絡くださいませ。
 

終わりに

いかがでしたでしょうか。

 

こんなこと言ったら 信頼性に問題がありますが、
プログラムなんてものは、まずは 動きゃいい と僕は思っています。
 
そして変数についても同じことが言えて、
別に変数を利用しなくても VBAは組めますから、
変数を理解できないことを理由に VBAを組むことを諦めないでください。
 
まずは 動きゃいいんです
と言いますか、変数含めて コピペして利用すれば良いんです。
 
本投稿記事のボリュームは多かったかと思いますが、
もっと気楽にとらえていきましょう。
 
 
こちらは宣伝になりますが、
もしVBA全般のルール・基本知識を身に付けたい方がいらっしゃいましたら、
本ブログでは「1週間で分かるVBA 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)
 




-ALL, EXCEL, Program, VBA
-, , , , ,