ExcelでVBAプログラミング(エクセルマクロ)
Excelにはマクロを作るための、VBAプログラミングできる環境があるらしい。
試しに遊んでみよう。
(以降は Excel2010 での説明)
■ 準備
VBAプログラミングには [開発] タブを使用する。
このタブが無い場合は、
[ファイル]-[リボンのユーザ設定]-[開発]をチェックして追加する。
■ はじめてのVBAプログラミング:メッセージボックスを表示させてみる
[開発]-[マクロ]を選択。
表示されるダイアログに、自分の好きなマクロ名を入れる。
ここでは、とりあえず message にしてみる。
マクロ名を入れたら[作成]ボタンを押す。
するとエディタが起動する。
ここで表示される
Sub message()
と
End Sub
の間にプログラムを記述する。
まずは、次のようにして見る。
Sub message() MsgBox "hello" End Sub
これで、このマクロを実行すると"Hello"という文字のメッセージボックスが表示される。
マクロを実行するには、Excelに戻ってもう一度[開発]-[マクロ]を押して、
表示されるダイアログで message を選択して [実行] を押す。
(エディタの[実行]-[Sub/ユーザーフォームの実行]でも実行できる)
すると、次のメッセージボックスが表示される。
■ ボタンでマクロを実行する
[開発]-[挿入]-[フォームコントロール]で[ボタン]を選択すると、マウスドラッグで好きな場所に好きな大きさのボタンを置ける。
その直後に表示されるダイアログで、message を選ぶと、これまでに作ったマクロとボタンを関連付けることができる。
(ボタンを押すと、マクロが実行される)
ボタンのラベルは自由に変更できる。
■ 変数とIf-Else 構文
VBAでの条件分岐は次のように記述する
If 条件式 Then 命令文 EndIf
次の例では、はい/いいえ/キャンセル のボタンがついたメッセージボックスが表示されて、[はい]が押された場合に "ですよね" というメッセージが表示される。
Sub message() ret = MsgBox("VBAおもしろい?", vbYesNoCancel, "質問") If ret = vbYes Then MsgBox "ですよね" EndIf End Sub
Elseを使った条件分岐は次のように記述する
If 条件式 Then 命令文1 Else 命令文2 EndIf
If 条件式1 Then 命令文1 ElseIf 条件式2 命令文2 Else 命令文2 EndIf
例
Sub message() ret = MsgBox("VBAおもしろい?", vbYesNoCancel, "質問") If ret = vbYes Then MsgBox "ですよね" ElseIf ret = vbNo Then MsgBox "ふーん" Else MsgBox "どっちなのさ" End If End Sub
■ 繰り返しのためのFor構文
VBAでのFor文は次のように記述する
(Step の記述がなければ i の値は1つずつ増える)
For i = 0 To 10 Step 2 命令文 Next
例
Sub message() For i = 5 To 0 Step -1 MsgBox "カウントダウン " & i Next MsgBox "どーん" End Sub
■ セルの値の操作
Cells(行番号, 列番号).Value
で、セルの値を取得したり、セルに値を設定したりできる。
次のプログラムでは、九九の表を作れる
Sub message() For i = 1 To 9 For j = 1 To 9 Cells(i, j).Value = "" & j & "x" & i & "=" & (i * j) Next Next End Sub
実行結果
参考:
・VBAの基本構文 - @//メモ
・エクセルVBAマクロ - MsgBoxとInputBox
ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
- 作者: 立山秀利
- 出版社/メーカー: 秀和システム
- 発売日: 2007/10/23
- メディア: 単行本
- 購入: 23人 クリック: 470回
- この商品を含むブログ (20件) を見る
Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応
- 作者: 田中亨
- 出版社/メーカー: 翔泳社
- 発売日: 2010/11/16
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 47回
- この商品を含むブログ (10件) を見る