定数 と 変数 ← 変数を使わないとプログラムは組めない! | 50歳からのエクセルプログラミング

50歳からのエクセルプログラミング

ブログでお伝えしたい事は、プログラムを使うと著しく業務効率が上がると言う事です。興味がある方はプログラムを動かしてその素晴らしさを体感して下さい。無限の可能性を秘めたプログラミングの世界をご紹介して参ります。

 前回、セル範囲のファイル間のコピー&貼り付けをご説明しました。どのブックのどのシートかを「はっきり明示」しておけば、ファイル間のデータのやり取りはさほど難しくありません。しかし、私も理屈は解ってもなかなか、命令文の書き方(構文)が解らなかった為、やりたいことを実現するのに、本やインターネットで相当調べました。「はっきり明示」の記述方法は今後詳しく説明予定です。

 

 まずは、定数と変数についてご説明致します。

 下図の「Cells(2, 1)」はセルの位置を表しますが、「(2, 1)」は2行1列を指します。「Cells(11, 8)」は11行8列を指します。「Range("A" & "20")」は20行A列を指します。よってこのプログラム?は何度実行しても、 2行1列~11行8列の範囲を、20行A列を左上として複写するだけで、データ行数の変化に対応することができません。これは、セル範囲の数値を定数(値が決まっている数値)で固定化している為です。

 

 それでは、変数を使った方法をご説明します。

 下図の緑枠の「=」の左側の文字、

「対象ブックの先頭行」「対象ブックの最終行」「対象ブックの最終列_1」
「新ブックの先頭行」この4つが変数です。

 変数とはデータ(数値、文字など)を格納するための、名前を付けた入れ物のことです。変数には入れる数値や文字に応じて、データ型を指定することができ、 変数に入れる数値や文字はプログラムの実行中に変更することができます。

 下図の例では、Ⅰ~Ⅳでプログラム中に変数を使っています。プログラムは上から順に実行されますので、まず、変数に定数を代入してから、コピー、貼り付け(ペースト)を実行します。このプログラムでも上図の定数における処理と同様、データ行数の変化に対応することができません

 実用的なプログラムを組むためには、これらの変数の値を自動的に変化させることが必要です。プログラムで自動実行させる為に、いかに変数の値を自動的に導き出してくるか。それを考えるのがプログラミングの醍醐味でもあり、苦労させられる部分でもあります。

 

 

補足説明:今までの説明で、「変数」をいきなりModule内に記述していますが、本来ならば、変数の宣言をしなければなりません。(構文 Dim 変数名 As 変数の型)書き方につきましては改めてご説明の機会を設ける予定です。

 変数名には、文字 (英数字、漢字、ひらがな、カタカナ) とアンダスコア (_) を使うことができます。 スペースや記号は使えません。変数名の先頭の文字は、英字、漢字、ひらがな、カタカナのいずれかでなければなりません。

 

 次回はセル範囲をいかにして自動的に把握するか。その方法のご説明を予定しています。お楽しみに。

 

読者の方へ。過去の記事をご覧になられていて、「画像」が上手く表示されない場合は、「hiro-yukioのサイト」の「過去のブログ記事」フォルダーにPDFで保存しましたのでこちらでご覧下さい。

hiro-yukioのサイト