第2講 計算させてみよう。


第3話 変数の値をExcel上のセルから入力しよう

第1,2話で作ったプログラムの場合、
変数の値を変更する場合いちいちプログラムを書き換えなければなりません。
それでは非常に手間がかかるので、
プログラムをいじらずに変数の値をExcel上のセルから入力できるようにしましょう。
サンプル3を開いてみましょう。
このプログラムは、
A5とC5のセルの数字を合計させるプログラムです。
実行ボタンを押すと合計が出てきます。
現在A5には7、C5には6が入力されていますが、
Excel上から他の値を入れてから再度実行ボタンを押して下さい。
やはり正しい合計が出てきます。
つまり、このプログラム(マクロ)はいちいちプログラムを書き換えなくても、
Excel上から変数の値を変更できるようにしたプログラムです。
Alt+F11によって、
VisualBasicを起動して下さい。
プログラムの記述が次のようになっています。

Private Sub CommandButton1_Click()

    Dim a As Integer, b As Integer, s As Integer

    a = Cells(5, 1)
    b = Cells(5, 3)
    s = a + b
    Cells(5, 5) = s

End Sub


それに対して第1、2話で作ったマクロのプログラムは次のようになっています。
Private Sub CommandButton1_Click()

    Dim a As Integer, b As Integer, s As Integer

    a = 1
    b = 2
    s = a + b
    Cells(5, 1) = s

End Sub
このプログラムでは、変数a、bの値はプログラム上から入れていました。
だから、変数の値を変えるときにはいちいちプログラムを書き換えなければなりません。
それに対して、サンプル3はa = Cells(5, 1)やb = Cells(5, 3)を
見ればわかる通りExcel上から変数の値を入力しています。
A5とC5にいろいろな値を入れて実行ボタンを押してみましょう。
プログラムを書き換えないでも、
Excelのシート上で入力し直せばあたらい値を変数a、bに入力できるようになっているのです。

次の消去のプログラムを解説しましょう。

Private Sub CommandButton2_Click()

    Range("a5,c5,e5").Select
    Selection.ClearContents
    Range("a1").Select

End Sub

Range("a5,c5,e5").SelectはセルA5、C5、E5を選択せよという命令です。
Selection.ClearContentsはその選択したものを消去せよという命令です。
今回ClearContents(消去)としている理由は、
行削除だとB5の+とD5の=も一緒に消えてしまうからです。
対象セル数が100程度ならClearContents(消去)でも処理時間はそれほどかかりませんから、
時に応じてClearContents(消去)を使って下さい。
ただ、対象セル数がある程度大きくなってくると処理時間がかなりかかるようになりますので、
Delete(削除)を使った方がいいと思います。

では、皆さん第1講第3話や前話を参考に自分でマクロを自分で組んでみましょう。

第2話へ 第4話へ

講義トップへ

数学研究室に戻る