エクセルVBAのプロパティについて解説しています。
<< オブジェクト・コレクション :前の記事
前回はオブジェクトとコレクションとはどのようなものなのかについて解説しましたが、オブジェクトだけでは何も操作することはできません。オブジェクトを操作するためには「プロパティ」と「メソッド」というものが用意されています。今回は、まず「プロパティ」について解説していきます。
プロパティとはオブジェクトの属性を指します。属性とは、そのオブジェクトの情報そのものです。プロパティはその値を取得したり、設定することもできます。
例えば、ExcelのA1セルというオブジェクトに「VBA」の文字列が入力されていたとします。このA1セルには、文字の大きさ・色・フォント・値など様々な属性が設定されています。このような「大きさ」「色」「フォント」「値」などがプロパティになります。
プロパティを利用するには決まった書式に則って記述します。決まった書式とは、以下のようにオブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。また、プロパティには「取得」と「設定」がありますのでオブジェクトをどのように扱うかによって使い分けます。
オブジェクト名.プロパティ名
プロパティを取得するための書式は以下になります。こちらはプロパティの記述方法と変わりませんが、この記述でプロパティの値そのものを取得します。
オブジェクト名.プロパティ名
例えばExcelのA1セルに「VBA」の文字列が入力されていたとします。このA1セルの値を取得するためには、Valueプロパティを利用して以下のように記述します。RangeオブジェクトのValueプロパティは、指定されたセル範囲の値を取得するものです。
これによりA1セルの「VBA」という値は取得できましたが、このまま処理を行うとエラーが発生します。というのも値を取得したものの値をどのように利用するかが記述されていないからです。
Sub Sample()
Range("A1").Value
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
取得した値は以下のように変数aに代入したり、MsgBox関数の引数として利用されたりします。「変数」や「VBA関数」について後々説明していきますのでここでは割愛しますが、プロパティはオブジェクトによって種類が異なるため、どのオブジェクトにどのようなプロパティが存在するかはその都度学習するようにしましょう。
Sub Sample()
a = Range("A1").Value
MsgBox (Range("A1").Value)
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
プロパティを設定するための書式は以下になります。プロパティを設定するには「=(イコール)」を記述し設定値を代入します。
オブジェクト名.プロパティ名 = 設定値
この場合の「=(イコール)」は代入演算子と呼ばれるもので、右辺の値を左辺に代入する機能があります。演算子については、「演算子とは」で詳しく説明していますので、ご確認ください。
また、プロパティの中には値の取得はできても設定ができないプロパティもあります。できないものについては、処理を実行するとエラーになりますので、その都度ご確認ください。
こちらも例をあげるとExcelのA1セルに「VBA」と入力されているものを「エクセル」に変更したいとします。この場合もRangeオブジェクトのValueプロパティを利用して指定されたセル範囲の値を設定します。こちらを実行するとA1には「エクセル」が代入されます。
Sub Sample()
Range("A1").Value = "エクセル"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
また、今回のValueプロパティのようなプロパティを省略できるものもあります。以下はプロパティを省略した形ですが、結果は同じになります。このように省略可能なプロパティのことを「既定プロパティ」と呼びますが、どんなオブジェクトにも省略できるプロパティがあるというわけではないということを覚えておきましょう。
Sub Sample()
Range("A1") = "エクセル"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
プロパティの「取得」と「設定」について解説しましたが、こちらは同時に組み合わせることも可能です。組み合わせには色々なパターンがありますが、基本的な形式は以下になります。こちらは左辺が取得する側で右辺が設定する側になります。
オブジェクト名.プロパティ名 = オブジェクト名.プロパティ名
こちらも例をあげるとExcelのA1セルに「VBA」と入力されているとします。以下は、そのA1セルの値をB1セルに代入する処理になります。この処理によりB1セルも「VBA」と代入されました。
こちらは一例に過ぎませんが、値の代入は色々な形で行われます。その都度、理解していきましょう。
Sub Sample()
Range("B1").Value = Range("A1").Value
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
ここまで当たり前のようにプロパティを解説してきましたが、そもそもどれがプロパティなのか判断が付かないことが多いかと思います。例えば「Value」はプロパティですが、「Select」はメソッドです。
プロパティを見分けるコツはオブジェクト名とプロパティ値の間に「の」を入れて判断できます。
例えば以下の例を見てみましょう。Valueプロパティは値そのものですので、「A1セルの値」ということになります。このように意味が通じるものはプロパティと判断するのが一般的です。
Sub Sample()
Range("A1").Value = "エクセル"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
次にメソッドはどのように見分けるかというとオブジェクト名とプロパティ値の間に「を」を入れて判断できます。こちらも以下の例を見てみましょう。Selectメソッドは「選択」という意味ですので、「A1セルを選択する」ということになります。こちらも同様に意味が通じるものはメソッドと判断します。
Sub Sample()
Range("A1").Select
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
今回はオブジェクトのプロパティについて解説しました。プロパティは取得や設定ができる便利な機能です。今後様々なプロパティを紹介していきますので、1つ1つ覚えていきましょう。
次回は「プロパティの見分け方」でも少し紹介したオブジェクトの「メソッド」についての解説になります。
次の記事: オブジェクトのメソッド >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
ExcelのVBAについてのQ&A掲示板↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。