Excel マクロ に出てくる 変数 とか、宣言のDimとか、データ型って何よ。

Excelの広場

最初にまずとなるのが、
Dimで変数を宣言することでしょう。

数学で X とか Y とかでてきましたよね。

例えば、

X = 5 Y = 10 とか..

日本語は難しい言い方をして X や Y の事を 変数 とよびました。簡単に言うと数値を入れる(入れ物)の事です。ExcelもVBAにおいても同じように変数を使います。

難しそうな言い方をするから、マクロ(プログラミング)は取っつきにくいんだと思います。国語が苦手な爺さんは、(+ × ÷ -)の事を 演算子 と言うのも気に入らないです。演算子と言う言葉の意味が分からないから調べなければならず、こんなことが積み重なって「説明書に何が書いてあるの?プログラムなんて理解できない!?もうメンドクサイ!放棄!!」となってしまいます。オブジェクト指向 とか.. 日本語の意味が直ぐに分からないことがプログラムを理解するのに大きな壁になっています。オブジェクト指向なんて言葉、日常会話で使いませんよね。極力分かりやすい言葉を使って書いていこうと思っていますが、難しい表現があったらお許し下さい。

プログラムを習得するのに、いちばんの近道は、実際にやってみて体で体感する事です。書いてある内容を理解する事に拘らず、分からないなりに、とにかくやってみる姿勢だと思います。

VBA とか マクロ とか?と思われた方は、合わせてお読みください。

Dimで変数を宣言、何のこっちゃ?

今は使用できるメモリー量も多く神経質になる必要は有りませんが、昔は使えるメモリー量も少なくあらかじめこの変数という入れ物に入る大きさは、 この大きさだよ!と宣言していました。

目的は、数十個しか入れることのない変数(入れ物)に 大きな入れ物を用意しておくことは、メモリーの無駄な消費につながり、処理スピードも遅くなることから神経を使っていました。今の時代、そんなに神経を使う必要はないです。

VBA では、数学と違い X や Y などの変数に 文字なども入れることもできます。

変数に 数字や文字、真/偽、等 入れる分けですが、今から マクロ処理をする為に使う変数は、こんな入れ物にするよ!とプログラムの最初に書く約束になっています。

なぜ最初に?と思われるかもしれませんが、VBA を作った人がそうしたから!と理解して下さい。

書き方は、Dim 変数名 as データ型

日本語で言うと、「入れ物に入る変数名は、○○と言うデータ型にする」と言う意味です。○○と言うデータ型は、多くありますが、下記つのタイプを覚えておけばOKです。一番ちいさいデータ型(入れ物)に Integer 整数型 で格納範囲は、-32,768 ~ 32,768 が有りますが、貧弱なパソコン時代の産物で今の時代、使うメリットはありません。

変数を 一番小さいデータ型(入れ物)にしたいときは、Long にしましょう。

データ型 名称 格納範囲
Long      長整数型 -2,147,483,648 ~ 2,147,483,647
Double    倍精度浮動小数点数型 -1.79769313486232E308 ~ -4.94065645841247E-324 (負の値)
4.94065645841247E-324 ~ 1.79769313486232E308 (正の値) 
String 文字列型 最大約20億文字まで
Boolean  ブール型 真 (True) または偽 (False)
Object オブジェクト型 オブジェクト
Variant バリアント型 すべてのデータ

注意

宣言しておいたデーターに対し違う
型式のデーターを入れようとすると、

「型が一致しません。」とエラーになるので、

何が入って来るのか不明な場合、
Variant にしておけば OK です。

Valiant(なんでもOK)と書いておけばエラーは、起きません。

ここまで書いて梯子を外すようですが、
VBA の場合 なにも変数を宣言しなければ、
自動的に Valiant(なんでもOK)と扱われエラーは、起きません。

だったら書く必要無いじゃん!と聞こえそうですが、何でもかんでも メモリー消費量の多い Valiant になるので、明らかに入ってくるものが小さいものまで、大きな入れ物を使うのは、デメリットしか有りません。

引数(変数)へ 各種データー を取り込む方法。

例えば、セル は、数字 とか 文字 だけではなく書式、罫線  など プロパティー で構成されています。

注意ポイント

プロパティーのある 物 の事を、
オブジェクト と よんでいます。

Max
最初に、プロパティー 、 オブジェクト って な方は、下記記事の最後の方を合わせてお読みくださいだワン!
Excel マクロの VBA を 書く VBE の 準備

Excelの広場 Max 最初に、「Excel マクロ の VBA を 書く VBE」って ? な方は、下記記事を合わせてお読みくださいだワン! 「Excel マクロ・VBA・VBE ってなぁに?」記 ...

続きを見る

オブジェクト を引数に代入するには、

A = Selection では、代入できません。

Max
Selection とは、選択されている場所という意味で、セルの場合、選択セル内容を取り込みなさいという事だワン!

じゃぁ どうするか?

頭に Set という文字を書きます。

Set A = Selection

ポイント

選択している セル 内容を代入したいので Selection という命令文を使います。
Max
爺さん爺さん..
代入先の事を、引数 と言ったり

変数 と言ったり、ころころ変わるけど
何がちがうかワン!?

ドングリ爺さん
難しい質問じゃのぅ..

引数 : オブジェクト(物)の固まりを代入 Set をつけるもの、

変数 : 数字、文字 を代入 Set を つけないもの、

正確に言葉尻を調べた事はないが、

野生の勘でこのように 認識しておる。

スポンサーリンク

-Excel の広場

Copyright© ドングリ爺のblog , 2021 All Rights Reserved Powered by AFFINGER5.