0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelは"もれなく全て"階層構造という話

Last updated at Posted at 2026-01-11

発覚


Excelアプリケーションはオブジェクトの階層構造である。




です。




私は5年目くらいの 職場のマクロ触れる人 です。
VBAの階層っぽさを端々で感じつつも、
それがファクトであるのか確かめることを疎かにしていました。
そしてある日、ChatGPTがボロッとそれに近いことを
言ったので調べました。

この概念を知るだけでも、VBA周辺の情報がだいぶ単純化されましたので、
初学者の方向けに共有します。

頂点

当たり前かもしれませんが、Applicationオブジェクト(Excel)が頂点のピラミッド型です。

Cellsまでの道程を例としたとき

Application(Excel アプリ全体)
 └ Workbooks(開いているブックの集合)
    └ Workbook(1つの Excel ファイル)
       └ Worksheets(シートの集合)
          └ Worksheet(1枚のシート)
             └ Range(セルの集合)
                └ Cells(最小単位のセル)

とりあえず覗く。

こんなコードをF5実行して、階層の中身を覗いてみましょう。

Sub test()

    Dim excelApp As Application
    Set excelApp = Application
 
    Stop
    
End Sub

「ローカルウィンドウ」を表示して、トグルを開けていきます。
(迷子になったら右クリックから階層を戻れます。)

「既定フォント」などExcelアプリ本体に紐づく情報多しです。

image.png

 

現在、開いているWorkBookは1つだけで、Item 1 がそのWorkBookにあたる。
Application → WorkBooks → WorkBook の流れはイメージ付きやすい。

image.png

厳密に書くと長め

トグルを開けて階層を下りていくと、RangeもいずれApplicationの配下にある訳です。以下2つのコードは同義になり、もちろん両方とも動作します。

Range("A1").Value = 1
' 厳密Ver.
Application.ActiveWorkbook.ActiveSheet.Range("A1").Value = 1

親要素を省略したRangeはアクティブブックを辿るよう変換されます。
という罠です。 Active系は意図しない参照を取りますので本番実装は奨めません。

なぜ Range("A1") が動くのか?

前項に思いっきり書いてしまいましたが、ThisWorkbook や Range、Cells など多くのプロパティはApplication からフルパスで記述しなくても利用できます。

省略された場合、

Application.ActiveWorkbook.ActiveSheet

暗黙的に補完されます。

この仕様により、Application を頂点とする階層構造に気づきにくくなっていますが、
VBA(Excel)も他のオブジェクト指向言語と同様に、明確な階層構造を持つ設計になっています。

逆引き卒業、リファレンスマンへ。

ピラミッド型の階層構造であることが確定したので、私の脳内の「Excelとは」の輪郭がハッキリする恩恵に授かりました。
事務方プログラマーにありがちな「やりたいこと」から定型コードを逆引きで探す機会が減りました。
ローカルウィンドウやリファレンスを覗き、オブジェクトに対し「やれること」を探索するアプローチがVBA開発の中心になりました。

まとめ

  • Excelは、Application を頂点とした明確なオブジェクトの階層構造を持つアプリケーションである。
  • Range("A1") などの省略記法は、Active な親オブジェクトが暗黙的に補完されているだけである。
  • 階層構造を理解すると、「やりたいこと→コード」ではなく「今触っているオブジェクト→やれること」から考えられるようになる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?