オブジェクトが「階層構造を持つ」』とは?※まだ書きかけです。※間違ってたらすみません。※メモ書きなので、自分でも意味不明な箇所も多いです。当サイトでは「オブジェクト」がらみのお話において、「オブジェクトは階層構造を持つ」「オブジェクトは階層構造を保持・保有・内包する」という表現が何度も出てきます。これは、実はちょっとテキトーな表現になってしまっています。便宜上、そう表現させてもらってるという・・・。実は実際には「オブジェクト」は、「階層構造」の中に・・・、位置するものです。「逆に、オブジェクトは階層構造に含まれるもの」とでも言いましょうか・・・。「階層構造の中に位置するもの」すなわちオブジェクトのことですが、それは、次のような機能を有しています。(詳細な説明はまたどこかで。今は、箇条書きで「やれること」のみを示します。)(01)「Parentプロパティ」を使って、今現在扱っているオブジェクトの上位のオブジェクトにアクセスする「Parentプロパティ」を同時にいくつも重ねて使うと、1つ上位だけでなく、更に、2つでも、3つでも上位のオブジェクトにアクセスできます。(「Parent」は「現在のオブジェクトの、1つ上/1つ親の階層のオブジェクト」という意味です。「ActiveSheet」の1つ上の階層のオブジェクトは「Workbook」オブジェクトです。そのとき、例えば「現在アクティブなブックの名前」を知りたいときに、「ActiveWorkbook.Name」と直接的に書くことが多いと思います。その代わりに、「ActiveSheet.Parent.Name」と言わば間接的に書いてもまったく同じ意味になります。「ActiveSheet.Parent」=「ActiveWorkbook」ということです。逆に「ActiveWorkbook」=「ActiveSheet.Parent」と書いたほうがいいのかな・・・。「アクティブなブックとは、アクティブなシートの1つ上(1つ親)のオブジェクトでもある」ということです。※ActiveCellのように、「ActiveCell.Parent.Name」とやって「Sheet××」と出る・・・・、つまり、WorkSheetオブジェクトが「親」・・・と思いきや、実は違ってて、実は親は「ActiveWindow」だった・・・というケースもあり、「×××.Parent」とやった時のオブジェクトと、実際の親のオブジェクトが一致しない場合もあります。その意味で言うと「.Parent」は万能ではありません。多くのケースでは親のオブジェクトがわかりますので重宝します。オブジェクトの上への自由往来ができることは変わりません。(02)その他の「プロパティ」を使って、今現在扱っているオブジェクトの下位のオブジェクトにアクセスする(03)上位/下位のオブジェクトに自由にアクセスできることで、上位や下位のオブジェクトの「プロパティ」や「メソッド」までもを、今居るオブジェクトから直接・流用(操作)できる。「ActiveCell」というオブジェクトからもアクセスできる。その場合は、ActiveCell.Parent.Nameと書き表す。・・・・という形になります。プロパティだけでなく、メソッドにもアクセスできます。「ActiveCell.Parent.PrintPreview」と書けば、「アクティブセルのParentのオブジェクト(=ワークシート=Worksheetオブジェクト)の印刷プレビューを表示して!」という意味になり、アクティブなセルを含むワークシートの印刷プレビューの画面が立ち上がります。(ActiveCellの場合、なぜか本当の上位のオブジェクトはWindowオブジェクトですが。)このとき、「PrintPreview」は、Rangeオブジェクトの1つ上の階層のオブジェクトである、「Worksheet」オブジェクトのメソッドのひとつです。同様に、セルの下位のオブジェクトのプロパティやメソッドにもアクセスし、それらのオブジェクトを動かすことができます。(04)そのため、上位/下位のオブジェクトを操作するのに、その上位/下位のオブジェクト用の「新しいオブジェクト変数」を宣言・用意しなくても、今居るオブジェクトから直接・上位/下位のオブジェクトを操作できる。(05)逆に言うと、今現在扱っているオブジェクトも、別のシーン・別のプログラムになれば「上位/下位のオブジェクトからの通信(ある意味問い合わせ?呼び出し?)に対し、自由に応答できる。」ということでもあります。保持・内包している」と表現してしまっています。保持・内包している」と表現してしまっているわけです。(5つだけじゃなくて、多分、もっと色んな機能があるのではないかと思います。すみませんが僕も勉強中なので、全部は知りません。)もちろん、厳密には違うのかもしれませんが、でも、実際の動きとしては、そんな感じに見えますし、初心者のころは、始めはそう覚えてしまってもほとんど問題は無いと思います。「オブジェクト変数」のことを理解したい場合、このように考えることは、「オブジェクトが内包している他のもの」・・・、つまり、「プロパティ、メソッド、イベント、ユーザー入力値」などとの絡みも考慮に入れますと、意外と、効果があると思います。(ある程度、整理して理解できるのではないかと思っています。僕だけかもしれませんが)それに、この5つの機能のことを逐一、その都度、厳密に説明するのも骨が折れます。保持・内包している」と、短い言葉で表現してしまっています。』、と表現するほうがイメージしてもらいやすいかもしれませんね。それも長ったらしいので、「階層構造を持つ」と表現してしまっています。』という意味でお話させていただいていますので、そのようにご理解ください。VBAの学習がかなり高度に進んでから、もっと、ちゃんとしたことを学習し直せば大丈夫だと思います。(ただ、僕には説明できないので、有名なレジェンドの先生たちにちゃんとお金を払って習ってください。挫折するオブジェクト式やプログラム(プロシージャ)の書き方、挫折しない書き方、の違い。送信メールが受信トレイに入ってしまうトラブルの回避、など。ODBCでQueryTableオブジェクトを自動作成するサンプルコード)。2000以降の全バージョンで使えると思います。~ついでに、セルの値で結果表示を自動で切り替える「パラメータクエリ」のVBAでの自動作成も。~★★Access2000VBA・Excel2000VBA独学~Win32API。eChromeを例に。(Excel、Word、Access、などが32bit版のモノでしか使えませんが、OSは64bitでも大丈夫です。フリーウェアのセットアップファイルが正しいファイルと同じものかどうか(危険ではないか)を調べる方法WordPressサイトにアメリカやロシアなど、外国からのアクセスが異常に増えたときの対処法?(ただし、総アクセス数が半分以下に激減し、GoogleやYahooでの検索順位も下がります。「安全」な、Youtube動画のダウンロード方法6つ。挫折するオブジェクト式やプログラム(プロシージャ)の書き方、挫折しない書き方、の違い。送信メールが受信トレイに入ってしまうトラブルの回避、など。ODBCでQueryTableオブジェクトを自動作成するサンプルコード)。2000以降の全バージョンで使えると思います。~ついでに、セルの値で結果表示を自動で切り替える「パラメータクエリ」のVBAでの自動作成も。technology.。