Excel VBAの第一歩、主な概念を知ろう

オブジェクト式の階層構造

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
オブジェクトは階層構造になっています。ブック-シート-セルの階層構造をイメージすることが、VBA上達の近道です。
講師:
07:28

字幕

このレッスンではオブジェクト式の階層構造について解説します。これはとても重要な考え方です。オブジェクト式では操作の対象つまり VBA の専門用語で言うところのオブジェクトは階層構造になっているということです。分かりやすい例でお話しましょう。例えば学校の先生が生徒である田中君に命令を出すとします。「田中.走れ」田中君を走らせようとしているんですね。これはオブジェクト式 B のパターンです。「田中.走れ」と言っても田中君は他のクラスにもいるかもしれません。指示を出す側は操作の対象がもし複数存在するとするなら明確に特定する義務があります。従って「 3 組の田中君走りなさい」の様に言わなければいけません。3 組のといっても、もしかすると1 年 3 組みにも 3 年 3 組にも田中君がいるかもしれませんね。そうなると「 1 年の 3 組の田中君走りなさい」この様な言い方が必要になります。いいえ、まだ安心はできませんよ。隣の中学にも 1 年 3 組みにも田中君がいるかもしれないとなれば「マルマル中学の 1 年の 3 組みの田中君走りなさい」階層構造というのはこういうことです。或はこの考え方は住所の様にイメージしていただいても結構です。 この話を Excel で置き換えてみましょう。マクロで Excel に対して指示を出します。「セル A1 削除」しかし先ほどの田中君と同じ様にセル A1 といっても複数存在しますね。セル A1 はシート 1 にもあればシート 2 にもあります。従って「シート 1 の A の 1 を削除」では待ってください。Excel では複数のブックを同時に開くことができますよね。つまりシート 1 といっても複数存在する可能性があるんです。そういう時は「ブック 1 のシート 1 の A の 1 を削除」先ほどの田中君を走らせるのと同じ考え方です。階層構造というのはこういうことです。先にお話した田中君を走らせるケース。そして、今の A1 を削除するケース。何れにしてもこの様な「何々ピリオド何々ピリオド」ピリオドを複数使って記述する場合はある特徴があります。それは必ず一番最後の右側の 1 単語が様子や状態つまりプロパティまたは命令、つまりメソッドになるということです。では、それ以外の左側は何かというとこれは要するに操作の対象を階層構造で特定しているだけですね。オブジェクト式というのはこの様に必ず右端の 1 単語がプロパティまたはメソッドになります。 Excel というのはこうした階層構造の塊です。様々な階層構造が複数に入り乱れてExcel が成り立っています。その中で最も我々がよく使うのはこのブック、シート、セル。この階層です。何故なら Excel のマクロではセルを扱うことがとても多いからです。では、そうしたマクロを作成する時に我々は常にブック 1 のシート 1 のブック 1 のシート 1 のと階層構造を指定しなければいけないのでしょうか。そんなことはありません。VBA ではよく使うもの、或はポイントになる様なものに関して特例が認められています。Excel が持つ様々な階層構造の中でこのブック、シート、セルこの階層に関しては次の様な特例が認められています。もし階層構造を省略するとそれはアクティブシートの或はアクティブブックのという意味になるということです。具体的にはこういう形です。もしセル A の 1 削除と書いた場合階層構造を指定していませんね。こんな時 VBA はこのセル A1 をアクティブシートの A1 と認識します。もしブックを省略してシート 1 の A1 と指定するとこれはアクティブブックのという意味になります。この様に階層構造を省略できるのはブック、シート、セルこのラインだけだと考えてください。 この様に省略するとアクティブシートアクティブブックの意味になるのですが実は重要なことは省略しなかったらという考え方です。今、階層構造の説明をした様にシート 1 のセル A の 1或はシート 2 のセル A の 1 の様に指定することが可能です。もし今アクティブシートがシート 1 だったとしましょう。その状態でただ A の 1 というとこれはシート 1 の A の 1 の意味です。何故ならば階層構造を省略したからです。では、その様にアクティブシートがシート 1 の状態でシート 2 の A の 1 をと書いたらどうでしょう。アクティブシートによらずシート 2、シート 3 つまり見えていないシートのセルを操作することが可能なのです。VBA では操作の対象が画面に表示されている必要はありません。ましてや、操作の対象が選択されていなくてもいいんです。画面にシート 1 が表示されている状態でシート 2 のセルをシート 3 のセルへコピーというコードも書けます。この様に VBA ではオブジェクトが階層構造になっているという考え方。そしてブック、シート、セルこの階層構造に関しては省略することが許されているということ。 しかし省略しなければ画面に見えていないオブジェクトを操作できるんだということ。この 3 つをしっかりイメージしてください。このレッスンではオブジェクト式の階層構造について解説しました。

Excel VBAの第一歩、主な概念を知ろう

マクロの自動記録の機能は便利ですが、VBA (Visual Basic for Applications)を使って自分でマクロを作れるようになるには基礎から学習するしかありません。このコースではVBAの概念とその基礎知識から、実務において実際に役立つマクロの作成の仕方まで順を追って解説します。

2時間19分 (31 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 1,990
発売日:2014年01月13日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。