第2講 変数を理解しよう

第1話 変数とは?
皆さんの中には、
変数や関数と聞いただけで虫ずが走る方もいらっしゃるのではないでしょうか。
ですが、変数や関数という言葉を聞いて苦手意識を持つ必要はさらさらありません。
変数は、数字や文字を入れる箱にすぎませんし、
関数(VBAの場合はサブプロシージャまたはファンクションプロシージャといいます。)は、
プログラミングの部品=パーツにすぎません。
プラモデルを部品から組み立てるように、
プログラミングは、関数というパーツを組み合わせるのです。
VBAでは、関数のことをサブプロシージャとファンクションプロシージャと呼んでいますが、
C言語やJavaでは、関数という名称が使われます。

さて、変数とは箱にすぎませんといいましたがどういう意味でしょうか。
p1
箱とは、上の図をイメージすればよいのです。


次のようなプログラムを組んで下さい。
Private Sub CommandButton1_Click()

  Dim a As Integer
  a = 1
  Cells(5, 1) = a

End Sub

Private Sub CommandButton2_Click()

  Range("5:2000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  
End Sub
(参考ダウンロード添付ファイル
実行ボタンを押すと、
h
となります。
  Dim a As Integer
  a = 1
  Cells(5, 1) = a
のaが変数です。
1行目は、変数の宣言といわれるものです。
DimとAsとIntegerのそれぞれの意味は、順に
定義する、として、整数型
という意味ですから、
aを整数型として定義する
という意味になります。
定義するというのは、約束するという意味です。
ですから『aを整数型と約束することを宣言する』
という意味だと理解して下さい。
これはaという名前のついた整数を入れる箱を用意するということなのです。
箱に入れる内容を決めたものが
  Dim a As
Integer
Integerです。
次の行
  a = 1
が、代入といわれる操作ですが、
代入といっても数学の代入とは違います。
ただ単にaのいう名前のついた箱に1を入れることです。
p2
そして、この箱にはデータは1個しか入りません。
例えば、プログラムコード
(プログラムの文章のことをコードといったり、ソースといったりします。
コードとソースという言葉を覚えて下さい。)

Private Sub CommandButton1_Click()

  Dim a As Integer
  a = 1
  a = 2
  Cells(5, 1) = a

End Sub
と変更して実行ボタンを押すと、
となります。
p3
データは1個しか入りませんから、
2を入れると、1は箱からはじき出されてしまいます。
そして、データは箱の中でしか生きられませんから、
1は消滅の運命を辿るのです。
最後の行
  Cells(5, 1) = a
は、aのはこの内容をCells(5, 1)に代入しています。
その結果、
となるのです。

変数名は、箱の名前にすぎませんので禁則を犯さなければ自由に付けられます。
禁則は、
アルファベット、数字、-、_(アンダーバー)以外の文字は使えない
(例えば、<、/、.、&などです。)
数字は先頭にもってきてはいけない
(例えば、1aなどです。a1は使えます。)

普通の言語では、半角英数以外使えないのですが、
VBAの場合には、全角の使用も認められています。
ですから、
Dim 整数型の変数 As Integer
等とすることも出来ます。
本講義では、変数名は基本は半角英数の1文字から2文字とします。
長い英単語を推奨するサイトや書籍もありますが、
integer_a
等の変数名は、一切採用しません。
理由は、箱の名前にすぎないのに、
integer_a
のように書かれると、初心者はこれ自体に何か意味があると、
思ってしまうからです。
aのような変数名だと、何の変数か分からなくなるという問題は、
第5講第5話の注釈文を使えば、あっさり解消します。


第1講第5話へ 第2話へ

004


eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ第2部へ
小学生からエンジニアまでのRuby入門へ
小学生からエンジニアまでのC言語入門 基礎から応用まで
本サイトトップへ