Excel VBA ベーシック 公式テキスト 4章
- まぁ、先週思いっきり遊んだら、学修していた事が吹っ飛んだ訳だけど。
- しかも、やったはずの範囲で見覚えのないものがあったり。
- というか、うち、4章やって無いんじゃ・・・?
- もっかいやり直し!
- 焦る。けど、このまま見なかった事にして進む事も出来ないので、こつこつとやっていく事にする。
VBAの構文:オブジェクト式
- 対象.様子 = 値
- 対象の様子や状況を設定す
- 操作の対象をオブジェクトと呼び、オブジェクトの様子をプロパティと呼ぶ
- 操作が出来ないプロパティもあり、これは「読み取り専用のプロパティ」と呼ばれる
- ex)
- 山田.服の色 = 赤(山田くんに赤い服を着せる)
- オブジェクト:山田の服
- プロパティ:赤
- ActiveCell.Value = 123(アクティブセルに123を代入する)
- 山田.服の色 = 赤(山田くんに赤い服を着せる)
- 対象の様子や状況を設定す
- 対象.命令 オプション := 値
- 対象に何らかのアクションを起こさせる
- 対象に何らかのアクションを起こさせる命令をメソッドという
- メソッドの実行に指定する条件やオプションを引数という
- ex)
- 山田.走れ
- 山田.走れ 速度:=ゆっくり
− オブジェクト:山田
- メソッド:走れ
- 引数:ゆっくり
- Activecell.Delete Shift:=xlUp
- アクティブセルの内容を削除して、上方向にシフトする
- Activecell.Delete Shift:=xlToLeft
- アクティブセルの内容を削除して、左方向にシフトする
- 複数の引数を指定する場合には、カンマで区切る
- ex)対象.命令 オプション1:=値1,オプション2:=値2
「=」と「:=」の違いに注意する。
オブジェクトは階層構造を持つ
- ex)Workbooks("Book1.xlsx").Worksheets("Sheet1").Range(“A1”).Value = 123
- オブジェクトの集合をコレクションと呼ぶ
- コレクションの名前は複数形になる
- ex)
- Worksheets("Sheet1")
- Worksheets(1)
- セルの場合には2つの方法がある
− Range("セル")
- ex) Range("A1")
- Cells(行番号,列番号)
- ex) Cells(1,1)
- Rengeオブジェクトの集合がCellsコレクション
ステートメント
- マクロの動きを制御するもの
- ex)
- Sub プロシージャの先頭に書くもの
- Dim 変数を宣言
- If 条件分岐
- For Next 繰り返し処理
- ex)
関数
- Excelの関数と同じように、データを引数として受け取って計算結果を返すもの