第2講 変数の学習
第3話 変数の体験
008
準備が整いましたので、
変数を体験してみましょう。
実行のボタンをダブルクリックしましょう。
021
VBAが起動します。
次のように入力します。
Private Sub CommandButton1_Click()
  Dim a As Integer
  a = 5
  Range("B4") = a
End Sub
(コードはコピペ可能です。)
ドラッグして範囲指定して右クリックでコピーして、
下に貼り付けてください。
Private Sub CommandButton1_Click()
  Dim a As Integer
  a = 5
  Range("B4") = a
End Sub
Private Sub CommandButton1_Click()
  Dim a As Integer
  a = 5
  Range("B4") = a
End Sub
このコードを次のように変更します。
Private Sub CommandButton1_Click()
  Dim a As Integer
  a = 5
  Range("B4") = a
End Sub
Private Sub CommandButton
2_Click()
  
Range("B4").Select
  Selection.ClearContents
  Range("A1").Select

End Sub
参考ダウンロード添付ファイル
変更が終わったら
001
カーソルを赤い囲い辺り(CommandButton1_Clickの中ならどこでも可)に戻して、
青の囲いを押してください。
第7話で申し述べるのを忘れましたが、
082を実行ボタンと言います。
プログラムを実行させるボタンです。
Al+F11
(Altのボタンを押しながらキーボードの一番上に並ぶ横列のF11を押すことをこの講義ではこう表現します。
F11などのボタンをファンクションキーといいます。
Alt+F11でVBAとエクセルを交互に切り替えることができます。)

をしてください。
すると、
002
B4に5が入っています。
消去ボタンを押してみましょう。
003
B4が消えてカーソルがA1に移動しています。
今度は、実行ボタンを押してみましょう。
002
再びB4が5となりました。
実行と消去で5が現れたり、消えたりします。

  Dim a As Integer
のaが変数ですし、この文を変数の宣言と言います。
Dimは「定義する」、
Asは「として」、
Integerは「整数」
という意味ですから、
aを整数型として定義することを宣言するという意味になります。
定義とは約束という意味です。
ですから、わかりやすく表現すると、
aを整数型の変数であることを約束するという意味になります。
さて、
  Dim a As Integer
の意味をもっとわかりやすく表現すると、
031
ということです。
基本的にプログラム言語が用意する箱は、
すべて用途が決まっています。
整数を入れる箱・倍精度浮動小数点を入れる箱・文字を入れる箱などと用途が決まっているのです。
なぜ用途を決めているかと申しますと、
メモリを節約するためです。
メモリには2つ意味があります。
1つは記憶装置という意味ですし、
もう1つは記憶容量という意味です。
今回のメモリは記憶容量という意味で使っています。
整数型であれば2バイト
(バイトとはメモリ容量の最小単位で0または1を入れることが出来る容量です。
2バイトであれば、0または1を入れる場所が2つあるということになります。)
の記憶容量ですが、
倍精度浮動小数点型(難しい名称ですが、桁数の大きい小数であると考えてください。)
であれば8バイトです。
大きい記憶容量を用意しておいて、
そこにメモリの小さなデータを入れることは、
とても大きい箱にリンゴを1個しか入れないことと同じことで、
無駄なことです。
データの大きさに基づいた箱を用意することが、
メモリを無駄にしないコツとなります。
そこで、プログラム言語においては変数には必ず型(メモリの大きさ)を用意するのです。
今回のaは整数を入れる変数なので、
整数型変数と言います。
数独自動生成においては9以下の整数しか使いませんので、
Integer型よりメモリ容量が小さいByte型を使います。
これは0から255までの整数を入れる箱です。
必要バイト数は1バイトです。
大は小を兼ねるだから、すべてInteger型で進めてもよいではないですか、
とお考えですか。
メモリ容量と処理速度は反比例の関係にあります。
小さな箱の方が速く運べますよね。
ですから、不必要に大きな箱は用意しない方がよいのです。
255以下の整数しか扱わないことがわかっている場合には、
Byte型を使うべきなのです。



第2話へ 第4話へ

トップへ