VBA の基礎 (Visual Basic for Application) 国立教育政策研究所 坂谷内 勝
1.Excel VBAの起 動(1)(2) Excel2007 のとき ※ Excel2003 以前のバージョ ンは(7)のスライドか ら。 (1) Excel2007 を起動す る。 (2)左上のボタン ( Office ボタン)をク リックする。 Office ボタン
1.Excel VBAの起 動(3) (3) 「 Excel の オプション」をク リックする。
1.Excel VBAの起 動(4) (4)「開 発」の先頭 をマウスで チェックを 付ける。
1.Excel VBAの起 動(5) (5)右下の 「 OK 」をク リックする。
1.Excel VBAの起 動(6) (6) 「開発」タブが表示されるの で、マウスでクリックする。
1.Excel VBAの起 動(7)(8) (Excel2003 以前のバージョンでは、「ツー ル」 タブの「マクロ」をクリックする。) (7)「マクロのセキュリティ」レベルを 「中」以下、 または「すべてのマクロを有効にする」に する。 (8)マクロの「 Visual Basic 」 Editor を選択 する。
1.Excel VBAの起 動(9) (9)「挿入」 で、「標準モ ジュール」を 追加する。 以上で準備 OKです。
2.マクロの作成 Sub test() MsgBox “ こんにちは ” End Sub 実行(横向き の青い三角の ボタン)をク リックする
3.マクロの追加 Sub test() MsgBox “ こんにちは ” End Sub Sub testend() MsgBox “ おしまいです ” End Sub
4.2つのマクロを実行する Sub test2() test testend End Sub Sub test() MsgBox “ こんにちは ” End sub Sub testend() Msgbox “ おしまいです ” End Sub
5.関数と引数(1) Sub テスト() MsgBox “ こんにちは ”,vbYesNo End Sub ※引数は、 vbYesNo の他に、いろいろあ る。 vbOKOnly, vbYesNoCancel, vbOKCancel, vbRetryCancel, vbRetryCancelIgnore ・・・
6.関数と引数(2) Sub テスト() MsgBox “ こんにちは ”,vbYesNo, “ タイト ル ” End Sub ※引数を省略することができる。 Msgbox “ こんにちは ”,, “ タイトル ”
7.変数 Sub 変数表示() kazu = 3 MsgBox kazu,, “ 変数kazuの値を表示 する ” MsgBox “ kazu ”,, “ kazuと表示する ” End Sub
8.四則演算 Sub 四則演算() kazu = 3 x = 5 kekka= (kazu + x) / (kazu – x) MsgBox kekka,, “ 計算結果 ” End Sub
9.複数行 Sub 複数行() kazu = 3 : x = 5 : y = 2 : kekka= kazu + x + y MsgBox kekka,, “ 計算結果 ” MsgBox kekka, vbYesNo, _ “ 計算結果は10になりましたか? ” End Sub ※複数行を1行に書くときは、:(コロン)を 使う。 ※ 1 行を複数行に分割するときは、スペースと _ (アンダースコア)を使う。
10.コメント Sub 四則演算() ' マクロ名です kazu = 3 : x = 5 ' 変数です ' 計算します kekka= (kazu + x) / (kazu – x) ' 表示します MsgBox kekka,, “ 計算結果 ” End Sub
11.簡単なプログラム (1) Sub pro01 () 'Excel の A1 のセルを最初の位置とします Range(“A1”).Activate For a = 1 to 9 ' a は上から下へ行を移動する kazu = a ^ a ' x ^ y は x の y 乗です 'Offset(a,0) とは、最初の位置からの相対位置で す ActiveCell.Offset(a,0).value = kazu Next a End Sub
12. Offset(a,b) の場所につ いて Excel の A1 のセルを最初 の位置とします Range(“A1”).Activate Offset(a,b) とは、最初の位 置からの相対位置です ActiveCell.Offset(a,b).value 下に a 右 に b右 に b
13.簡単なプログラム (2) Sub pro02 () Range(“A1”).Activate For a = 0 to 9 ' a は上から下へ行を移動する For b = 0 to 5 ' b は左から右へ列を移動する ActiveCell.Offset(a,b).value = a * b Next b Next a End Sub
14. For ・・・ Next につ いて For a = 0 to 9 ‘ a は 0 から 9 まで For b = 0 to 5 ‘ b は 0 から 5 まで ・・・・・・・・・・・・ Next b Next a [解説] 最初、 a は 0 で、 b は 0 から 5 まで。 次に、 a は 1 で、 b は 0 から 5 ま で。 次に、 a は 2 で、 b は 0 から 5 ま で。 ( 略 ) 最後に、 a は 9 で、 b は 0 から 5 まで。
15.マクロ付きの Excel ブッ クの保存方法 通常の方法で Excel ブックを保存してください。 保存した Excel ブックを開くと、以前作成した マクロが付いています。
16.BASIC(1) VBAでさらに複雑なプログラムを開 発するためには、プログラムの基本を 学習しなければいけません。 プログラムの基本とは、入出力、変数、 条件分岐、繰り返し操作、関 数、・・・です。 プログラム言語の中で最もシンプルな 言語はBASICです。
17.BASIC(2) BASICを理解すれば(自分の思い通りの プログラムを作ることができれば)、他のプ ログラミング言語にもその基本は応用するこ とができます。 例えば、VB(Visual Basic)、 VBA、C、Java等の言語でプログラミ ングすることができます。 後期のプログラミング2では、C、Java で少し複雑なプログラミングを勉強します。 前期は、BASIC、VBA、Lispを 使って、プログラミングの基本を習得します。