トップページ

#1_2 オブジェクトの親子関係


Excelの階層構造を把握しよう

例えば私はある家族の一員であり、私の家族はある県の1世帯です。このように私たちもある一定の階層を下って個人の情報にたどり着きます。

Excelでも同じです。あるセルというオブジェクトに注目します。セルはあるワークシート上に存在し、そのワークシートはあるワークブックに属しています。親子関係で見れば、セルの親がワークシートで、ワークシートの親がワークブックになります。

このように、オブジェクト同士は階層構造で繋がっています。

階層構造を体験しよう

例えば今Sheet1上の任意のセルを選択していたとして、Sheet2のA1セルにマクロで「楽しいVBA」と入力したいとしましょう。

そこで、次のステートメントを用いるとどうなるでしょうか。

答えはSheet1のA1セルに値が入力されます。つまり、この命令によって文字が入力されるのは「アクティブシートのA1セル」ということになります。

Sheet1上にいながらSheet2上のA1セルに値を入れたければ、そのセルの親を指定しなければならないのです。

上でExcelの各オブジェクトは階層構造であると説明しましたが、このように親オブジェクトを指定すれば、例えば1つのステートメントで他のブックの他のシートのデータを入力・変更することもできるのです。

ちなみに親オブジェクトを指定せずに同様の結果を得るためには下のように記述すれば良いです。

ですが、この方法は2ステップも挟みますし、いちいちアクティブオブジェクトを変更するとマクロも重くなります。

何より見づらいので、親オブジェクトを指定したスマートな記述を強くお勧めします!