
VBA超入門シリーズ:その8 ~変数の型・オブジェクト型~
前回は演算子についてまとめています。
↑前の記事になりますが、その6でオブジェクト型の説明をしていないのでまとめます。
オブジェクト、コレクション
オブジェクトとはブックやシート、セルなどVBAでの操作対象となるもののことです。
オブジェクト
要素名 | オブジェクト名 |
---|---|
アプリケーション | Application |
ブック | Workbook |
ワークシート | Worksheet |
セル | Range |
他もあるのですが、まずはこれだけ知っておきましょう。
1つのブックオブジェクトの中に複数のシートオブジェクトが含まれます。
このオブジェクトの集まりをコレクションといいます。
例えばあるブックに含まれているワークシートを管理しているもので、ワークシートコレクションに含まれるオブジェクトを一つ一つ取り出していくことが可能になります。
コレクション
要素名 | オブジェクト名 | 説明 |
---|---|---|
ブック | Workbooks | 開いている全てのブック |
ワークシート | Worksheets | ブックに含まれる全てのワークシート |
コレクションは階層構造になります。
Application
|
+- Workbooks
|
+- Worksheets
|
+- Range
最上位に「Application」オブジェクトがあります。
以下にブック、シート、セルと並びます。Excelそのままなのでイメージしやすいですね。
さて、最初に記述したようにVBAで操作対象となるもの…
ということで、オブジェクトに対していろいろな操作を行うことができます。
例えば”シートを開く”とか”セルに文字を入力する”とかなどですね。
いままでなんとなくつかってきたこのコード↓
Range("A1").Value = 10
よく分からないけどA1に10をいれてくれるヤツ
程度の認識でしたが
と少し意味が分かっていきました。
使い方
他のデータ型と基本は同じです。
Dim 変数 As データ型
Dim ブック As workbook
Dim シート As worksheet
ですが、
オブジェクト変数に値を格納するとき、
「変数 = 値」の前に「Set」を付ける必要があります。
Dim test As Range
Set test = Range("A1")
test = 20
これでオブジェクト変数にセルを格納することが可能になりました。
プロパティ、メソッド
さらっと流したこの「Value」説明シテナイデスヨ
プロパティ
財産、資産、物件、所有物、特性、属性、性質、効能などの意味を持つ英単語。ITの分野では、ソフトウェアが取り扱う対象(オブジェクト)の持つ設定や状態、属性などの情報のこと
オブジェクトが持っている各種情報を取得するために使います。
その構文がこれです。
オブジェクト.プロパティ名 (対象.様子)
オブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。
プロパティの種類はオブジェクトによりさまざまです。
RangeオブジェクトのValueプロパティだけさらっと確認します。
指定されたセル範囲の値を設定および取得が可能です。
例をもとに確認します。
セル(“A1”)を表すRangeオブジェクトを取り出し、そのオブジェクトのValueプロパティに20という値を設定しています。
Dim test As Range
Set test = Range("A1")
test.Value = 20
Valueプロパティはオブジェクトに格納されている値を管理するプロパティなので、結果的にセル(“A1”)に20という値が表示されます。
いくつかのオブジェクトには標準プロパティといわれるものがあり、Rangeオブジェクトの標準プロパティはValueプロパティです。
標準プロパティとは省略可能なプロパティになります。
Range("A1").Value = 10
とするのが正しいのですが
Range("A1") = 10
とすることが可能です。
サイトや教本では省略されたコードも多いのですが、本来はあるものと認識しておきましょう。
メソッド
こちらはオブジェクトに対する動作を指定します。セルの削除や選択などです。
構文はこちら
オブジェクト.メソッド名
こちらもプロパティ同様、種類はオブジェクトによりさまざまです。
セルの削除と選択について確認します。
Deleteメソッド
セルを削除するメソッドです。
Dim test As Range
Set test = Range("A3")
test.Delete
A3のセルを削除します。
ExcelのA4:F8に適当な数字を打ち込んで実行してみます。
A3のセルが削除されて、A列の4行目以降が繰り上がったことが確認できます。
ClearContentsメソッド
ClearContentsメソッドを使うと数式と文字の削除が可能です。
Dim test As Range
Set test = Range("A3")
test.ClearContents
Selectメソッド
指定したセルの選択が可能です。
Dim test As Range
Set test = Range("A3")
test.Select
おわりに
オブジェクト型の使い方を軽くですがまとめました。
オブジェクト、プロパティとメソッド、とても種類が多くここではまとめきれませんね。
超入門シリーズなのでこのあたりで!また次回!