Visual Basic for Application

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
下に a
右にb
Offset(a,b) とは、最初の位
置からの相対位置です
ActiveCell.Offset(a,b).value
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を使って、プログラ
ミングの基本を習得します。