マクロの自動記録で雛型作って適当に改造というお手軽さ。
一般企業の業務システムなんて殆ど何でも作れちゃうし!
でもトラブルの元になることもあったりする。
はじめに†
VBAはMicrosoft Officeに搭載されている統合開発環境Visual Basic Editor(VBE)上で開発する。
コードはMicrosoft Excel 2003と2007で動かしているが2003以前でも2007以降でもたぶん動く。
- 下準備としてまずはセキュリティレベルを下げる
- 2003
ツール→マクロ→セキュリティ→中もしくは低をクリック
- 2007(2010も2013も同じ)
多少面倒くさい。今後のために開発タブを表示させその後設定を変更する。
左上のMicrosoft Officeボタン→Excelのオプション→基本設定→Excelの使用に関する基本オプション→
開発タブをリボンに表示する→マクロの設定→
警告を表示しすべてのマクロを無効にする又はすべてのマクロを有効にするをクリック
- VBEの起動・プログラムの実行
- 解説
Sub HelloWorld()からEnd Subまでがプログラムを構成する最小単位であるプロシージャである。
Sub HelloWorld()はプロシージャ名となる。HelloWorldの部分を書き換えれば好きな名前に出来る。
次に何を(オブジェクト)どうするのか(プロパティ)を指定しなければならない。
Range("A1").Value はRange(セル)にValue(値の代入)をするという意味である。
Valueは他にもセル内の値を参照するときにも使う。= は値を代入するときに使う記号である。
""内に代入したい値を入力する。ただし数値であれば""は不要である。= 1 + 2 のようにすれば計算結果を代入できる。
""を使うと(= "1 + 2")計算結果ではなく1 + 2という文字列が代入される。
変数の利用†
- 変数とは
利用したいデータ(文字列や数値)を一時的に取り置くための箱のようなもの
パソコンのメモリに一定のスペースを確保しそこにデータを記憶させる。
- 変数を利用したプログラム
Sub 変数()
'あらかじめA1セルとB1セルに入力されている整数を掛けて計算結果をC1セルに表示する
Dim i As Integer
Dim j As Integer
i = Range("A1").Value
j = Range("B1").Value
Range("C1").Value = i * j
End Sub
- 解説
まずは変数名と変数で何のデータを扱うのか(変数の型)を定める。これを変数の宣言という。
VBAの場合はDim 変数名 As 変数の型となる。Integerは-32768から32767までの整数を扱うための型である。
Dim i As Integer
Dim j As Integer
次に用意した変数に値を代入する。今回はセルを参照してそこに入力されている値を代入する。
i = Range("A1").Value
j = Range("B1").Value
計算結果をC1セルに代入する。
Range("C1").Value = i * j
セルの操作†
条件分岐†
繰り返し†
ユーザー定義型の変数†
ユーザーフォーム†
ワークシートとブックの操作†
関数の活用†
グラフ†
ピボットテーブル†
デバッグ†
エラー処理†
Win32APIの呼び出し†