Top

hiroyuki.tank.support.site

簡単!マクロ講座

第32回〜変数の宣言1〜

 いままでマクロの自動記録やコードの書き方,フォームの作り方など基本的なことを中心にやってきました。
 基礎の基礎編は変数の宣言で終わりです。  基礎編の最後に避けては通れない変数の宣言について少し説明します。

 変数とは第12回に初めてでてきて,それ以降ちょくちょく使ってきました。
 「変数とはなにか」という問いには明確に答えにくいのですが,簡単に言えば「入れ物」とか,「置き場所」ということになります。引き出しや机の上くらいに思ってもらっていいと思います。

 さて,「変数の宣言」というキーワードが初めて出てきました。
 用語辞典によると,「変数名と格納するデータ型を定義すること」とあります。
 わかりやすくいうと,変数を使うときは,「変数名は○○ですよ」とか,「この変数には文字が入りますよ」とかいう変数の名前や型をコンピュータに教えてやることです。

 どのように宣言するのか例をあげます。
 変数を宣言する場合,一般的にDimステートメントを使用します。
 通常は,「Dim 変数名 As データ型」という書き方になります。
 1つのDimステートメントで複数の変数を宣言する場合はカンマ(,)で区切って使います。

*************************************
Dim いち As String ← 「いち」は文字列型
Dim にい As Integer ← 「にい」は整数型
Dim にい As Integer, さん As Integer ← 注!
*************************************

(注!)複数の変数を宣言する場合は,カンマ「,」で区切って指定します。As は各変数に記述する必要があります。
     Asを省略して宣言した変数はバリアント型の変数になります。
     Dim にい ,B さん Integer  と宣言すると,変数「にい」はバリアント型の変数として宣言されます。
 *埼玉のS.Yさんのご指摘で訂正させていただきました。


 宣言しなかったらどうなるのでしょうか?
 実は通常の事務レベルの使用では特になにもおこりません。
 というのも,宣言をしなかったときはコンピュータは,「これは変数だな」と勝手に判断してくれて,しかも「バリアント型(Variant型)にしておこう」と勝手になんでも対応できる型=バリアント型としてみてくれるのです。だからいままで宣言したことはなかったのにうまく動いていました。

 ではなぜわざわざ変数の宣言をしなければならないのでしょうか。
 理由は大きく三つあります。
@実行速度の向上
 変数の宣言をしない場合は,コンピュータはバリアント型として判断します。
 いちいち判断しなくても宣言しておいた方がコードを実行するスピードが速いそうです。 速いといってもいまのコンピュータの性能は一昔前のものより格段に高速ですから,人が感じるスピードではないようです。
Aメモリの節約
 なんでも対応できるバリアント型はコード実行の時にメモリ空間を多く消費します。
 メモリは現実の世界でいえば机のようなものですから,机の上にものがいっぱい乗っていたら仕事の邪魔になるように,メモリ空間にそんなに場所を取らなくていい変数が場所を占有していたら邪魔なのです。
 きちんとその型にあった宣言をしておけばメモリの無駄が省けます。
 ただ,メモリもいまは大容量を積んでいるコンピュータが多いのであまり気にしなくてもよいようです。
Bエラーの回避
 現在の高性能時代に変数の宣言をしなければならない一番の理由がこれです。
 データ型の違いにより答えが違ってくるプログラムがあるのです。
 これは次回に例をあげてみます。

| hiroyuki.tank.support.site.Top | このページのTop | マクロ講座目次 | 前回 | 次回 |