マクロの自動記録で雛型作って適当に改造というお手軽さ。
一般企業の業務システムなんて殆ど何でも作れちゃうし!
でもトラブルの元になることもあったりする。
VBAはMicrosoft Officeに搭載されている統合開発環境Visual Basic Editor(VBE)上で開発する。
コードはMicrosoft Excel 2003と2007で動かしているが2003以前でも2007以降でもたぶん動く。
バージョン間の互換性は高い。
Sub HelloWorld()
'これはコメント、アポストロフィーのあとに入力する
'メモみたいなもん
'実行結果はA1セルにHelloWorldと表示される
Range("A1").Value = "HelloWorld"
End SubSub 変数()
'あらかじめ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 SubDim i As Integer Dim j As Integer次に用意した変数に値を代入する。今回はセルを参照してそこに入力されている値を代入する。
i = Range("A1").Value
j = Range("B1").Value
C1セルに計算結果を代入する。
Range("C1").Value = i * jint i,j,k;VBAではこのようにするとk以外はVariantになってしまう。
Dim i, j, k As Integer正しくは
Dim i As Integer, j As Integer, k As Integer他にもVBA(VB)は独特の仕様があるから気を付けよう。
| 型 | 扱えるデータ | メモ |
| Integer | ||
| long | ||
| Songle | ||
| Double | ||
| String | ||
| Byte | ||
| Boolean | ||
| Currency | ||
| Date | ||
| Object | ||
| Variant |
Sub 計算()
Dim i As Single
Dim j As Single
i = 3
j = 2
'加
Range("D1").Value = i + j
'減
Range("E1").Value = i - j
'乗
Range("F1").Value = i * j
'除
Range("G1").Value = i / j
'商
Range("H1").Value = i \ j
'あまり
Range("I1").Value = i Mod j
'べき乗
Range("J1").Value = i ^ j
'文字列結合演算子
Range("k1").Value = i & j
End Sub
Sub 相対参照()
'セルG7を選択する
Range("G7").Select
'ActiveCellは現在選択されているセルを参照する。
'Offsetはセルを移動させる。左の数値は上下の指定、右の数値は左右の指定。
'下に1つ、左に3つセルを移動させる。移動後のセルはJ8。
ActiveCell.Offset(1, 3).Select
End Sub| -2,-2 | -2,-1 | -2,0 | -2,1 | -2,2 |
| -1,-2 | -1,-1 | -1,0 | -1,1 | -1,2 |
| 0,-2 | 0,-1 | 基準 | 0,1 | 0,2 |
| 1,-2 | 1,-1 | 1,0 | 1,1 | 1,2 |
| 2,-2 | 2,-1 | 2,0 | 2,1 | 2,2 |
=$C$1+$D$1
Sub 絶対参照01()
Range("A1").Select
End SubSub 絶対参照02()
Range("B1,B3").Select
End SubSub 絶対参照03()
Range("C1:D5").Select
End Sub