見出し画像

VBA④ VBAの構文

オブジェクト式

操作する対象を「オブジェクト」と呼ぶ。(例)セルや行や列など

対象(オブジェクト)→ 命令(メソッド)

様子(プロパティ)

オブジェクト式の書き方

①プロパティ
「対象.様子」
「対象.様子 = 値」

イメージ
Kuma. Size
Kuma. Size = 100
# 変数に100を代入

Range("A1").value
Range("A1").value = 100
# セルA1の値に100を代入

②メソッド
「対象.命令」
「対象.命令 オプション: = 値」

イメージ
Kuma Walk
Kuma Walk Speed:=100

Range("A1").Copy
Range("A1").Copy Destination:=Range("B1")
「セルA1に」、「コピー」、「貼り付け先は」、「セルB1」
# 省略可能
Range("A1").Copy Range("B1")

③メソッドのオプションが複数ある場合

イメージ
速さ:=100, どこまで:=A1,歩幅:=10
100,地点A 1,10 ← オプション名を省略できる
歩幅 :=103番目のオプションだけを指定する

VBAでは
Range("A1:J11").sort Key1 :=Range("A1"), _
                     Order1 :=x|Ascending
# 並び替え 並び替えフィールドはセルA1
# 並び替え順 は昇順

オブジェクトの階層構造

「ブック.シート.セル」のように階層構造を取る

イメージ
                        クマ.歩く
              森Aの.クマ.歩く
地区Aの.森Aの.クマ.歩く

Excelでは
                         セルA1.クリア
             シートA.セルA1.クリア
ブックA.シートA.セルA1.クリア

※省略した場合は「アクティブブック」や「アクティブシート」が指定される

階層構造の特例

ブックとシートは省略できる。省略した場合、
「アクティブブック」「アクティシート」と解釈される

イメージ
                             クマ.歩く
           アクティブ森の.クマ.歩く
アクティブ地区.森Aの.クマ.歩く

Excelでは
                                     セルA1.クリア
             アクティブシート.セルA1.クリア
アクティブブック.シートA.セルA1.クリア

コレクション

操作の対象とするブックやシートは、コレクションの一員として指定する

イメージ「クマ.歩く」ではなく
動物たち("クマ").歩く
動物たち(1).歩く
などと指定

Excelでは
コレクション("名前")
コレクション("番号")

ブックやシートの指定方法

シートの場合
Sheets("Sheet1") ← シート名
Sheets(1) ← 番号

※「Sheets」と「Worksheets」の違い
・Sheetsは全ての種類のシート
・Worksheetsはワークシートのみ
場合によって使い分けるが
今はSheetsだけでほぼ差し支えない

ブックの場合
Workbooks("sample.xlsx") ← ブック名 .拡張子
Workbooks(1) ← 番号

セルの指定方法

Rangeの場合
Range("セル位置または範囲")
Range("A1")
Range("A1:C2")

RangeにCellsを入れ込むこともできる
Range(Cells(1, 1), Cells(3, 2))のように入れ込むことも可能
※使用頻度はあまり高くない

Cellsの場合
Cells(行番号, 列番号)
Cells(3, 2)
Cells(3, "B")

Cellsは単一のセルを指定するのが基本
Rangeではセル範囲を指定できるが
Cellsは基本的に単一のセルを指定する用途。
(例外として「Cells」として引数なその場合は全てのセルを指定)

ステートメント

オブジェクト式以外に、マクロ全体の働きを制御づるための言葉をステートメントと呼ぶ

オブジェクト式
・操作対象.動作(メソッド)
・操作対象.状態(プロパティ)

ステートメント
・For・・・Next
10回繰り返し
・If・・・Then
条件分岐
・Dim
変数作成

関数

MsgBoxのように特定の処理を行う組み込みの機能を函数という

VBA関数
・VBA専用の関数。ワークシートからは呼び出せない
・MsgBoxReplace関数
・Left関数、Mid関数、Right関数など

ワークシート関数
・エクセルワークシートで利用できる関数
・SUM関数、AVERAGE関数、VLOOKUP関数など
・VBAから呼び出すことも可能
・WorksheetFunction.Sum(引数)など呼び出す

VBA関数の利用方法

カッコ()がいらない場合
関数名  引数
MsgBox "Hello"
関数に引数を渡してあげること!

カッコ()を必要とする場合
(※戻り値がある)
  └結果を返してあげること!
関数名 (引数)
UCase ("hello")
Range("A1").Value = UCase ("hello")

※UCase関数 = 全部大文字に変換
引数「hello」を関数に渡す
戻り値「HELLO」を返す

演算子

計算やデータの結合や比較などをするために使う記号

算術演算子
・いわゆる計算に使う
・+,-,/-|,*,⌃,Mod

比較演算子
・条件分岐などで使用
・=,<,>,<>,Is,Likeなど

文字列連結演算子
・文字列を結合する
・&,+

論理演算子
・条件を組み合わせる際に使用
・And,Or,Notなど

代入演算子
・変数やプロパティに値を代入
・=

この記事が気に入ったらサポートをしてみませんか?