第7講 結果を報告しない社員

第5話 ローカル(地方的)ということ

前話解答例
Private Sub CommandButton1_Click()
  wa
  seki
End Sub
Private Sub CommandButton2_Click()
  Rows("6:200").Select
  Selection.ClearContents
  Cells(1, 1).Select
End Sub
Sub wa()
  Dim w As Long, i As Byte
  w = 0
  For i = 1 To 10
    w = w + i
  Next
  Cells(6, 1) = "1から10までの和"
  Cells(6, 3) = w
End Sub
Sub seki()
  Dim w As Long, i As Byte
  w = 1
  For i = 1 To 10
    w = w * i
  Next
  Cells(7, 1) = "1から10までの積"
  Cells(7, 3) = w
End Sub


vba
waの箱wとiは赤い囲いの中でのみ使える
sekiの箱wとiは青い囲いの中でのみ使える


重要な注意を繰り返します。
同名wであっても、waのwとsekiのwは別の箱です。
そして、sekiはwaの箱wを使うことはできません。
逆にwaはsekiの箱wを使うことができません。
また、CommandButton1やCommandButton2もwaの箱wを使うことはできません。
箱は、箱を作った社員の専用であって、他の社員は使えません。
C++やJavaには絶対的な親分であるmainがいますが、
その絶対的な親分でも、子分が作った箱は一切使うことはできません。
絶対的な親分でさえ使えないのですから、絶対的な親分のいないVBAではなおさらです。
変数がプロシージャ内でしか通用しないことをローカルであるといいます。
つまり、各社員が用意した箱はローカル変数です。

でも、会社員全員が使える箱ってないの?
全社員共有の箱ってないの?
この疑問を抱いた方は、なかなか慧眼な方です。
実は、ローカル変数に対してグローバルな変数が存在するのです。
全社員共有の箱を作るには、
入門
ピンク枠の前、すなわちプログラムの文章の冒頭で変数の宣言をすればよいのです。
では皆さん、グローバル変数=全社員共有の箱を使ってプログラムを書き換えてみましょう。


第4話へ 第6話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る