★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol.0004:(06)(07) 挫折しないための「オブジェクト」とは? その1+オブジェクトをスチームオーブンやATMなどに例えると?
  
バックナンバー目次ページは→こちらです。

まぐまぐのページは以下です。
https://www.mag2.com/m/0001691660.html
  
  

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■独学者が1年後にExcelVBAを爆発的に上達させるための最低限の基礎知識メモ(ダイジェスト)

Vol.0004

タイトル:挫折しないための「オブジェクト」とは? その1+オブジェクトをスチームオーブンやATMなどに例えると?
  

バックナンバー目次とサンプル号
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  

ExcelVBAプログラミングは、

「文字系データの操作」が料理で言うところの「下ごしらえ」的なモノで、
「オブジェクトの操作」が料理で言うところの「メイン調理」的なモノ・・・

というイメージで考えて良いかと思います。
(本当はどちらもメイン、という感じでもあるんですが・・・)

いずれにしましても、
なので、「オブジェクト」はとても重要です。
  
  

今回はそのオブジェクトについて、僕自身が感じていることを書きます。
  
  

自分自身、まだ「VBA初心者」なので、うまく伝えられていないと思いますが、
よろしくお願いいたします。
  

何かしらのヒントになりますれば・・・
  

今回のものと、あともうひとつ、「もう少しわかりやすく書けないかなあ?」と
別の説明も作ってみました。
結局、ちゃんと書けなかったのですが、それも次回で、お伝えしたいと思います。
(「その2」として。今回の号は「その1」です。)

読者様におかれましては、その2つをたたき台に、オブジェクトについて、
ご自分なりに新しくまとめ直していただけたらなあ、と思います。
  
  

あと、本当に申し訳ないのですが、この号以降、
市販書籍や著者たちに対する批判めいことを書いてしまっています。

ごめんなさい!!!!!

が、これは
僕自身「VBA初心者」として・・・

「なんでこの本、こんな説明のし方をしてるのか全く意味が分からない。
 おかげで間違って理解させられてしまった。
 ある意味ずーっとダマされてた。」

・・・ということが少なくなかったので、その意味で、大変申し訳ないのですが、
載せてしまいました。

本当は良くないことだと思うのですが、でも、、、
「僕のように、市販書籍やWebサイトに騙されないように」という願いを込めまして
「あえて」「載せてしまいました。」
ですので、どうか、ご容赦ください。

ご気分を害されたら本当にすみません。
  

では、以降、今回分の内容です。よろしくお願いいたします。
  

※今回、重要な個所には「★★」を打ってしまいました。
  重要なところだらけです。
  

===================
  
  

★ (06)挫折しないための「オブジェクト」とは?

「オブジェクト」とは、次のようなものです。
  
  
  

・★★
 「オブジェクト」とは、基本、「複数の細かい機能の集合体・複合体」のことです。
  目に見える見えないに関わらず、また、「3、4個の小さな機能が集まっているだけ」でも
  絵やアイコンの体をなしていなくても「オブジェクト」です。
 ★★
  

・また、「ユニット」「パーツ(部品)」「ロボット」といった捉え方のできるものです。
  そして「文字系データじゃない」です。

・ある意味「メカ」です。
 「メカニック」「メカニカル」なモノです。

・「装置」というイメージでもいいと思います。
 なので、例えば・・・、
 「ブック管理装置」(=Workbookオブジェクト)
 「シート管理装置」(=WorkSheetオブジェクト)
 「グラフ管理装置」(=Chartオブジェクト)
 「並べ替え管理装置」(=Sortオブジェクト)
 「フィルタ管理装置」(=AutoFilterオブジェクト)
 「条件付き書式管理装置」(=FormatConditionオブジェクト)
 「エラー管理装置」(=errオブジェクト)
 「OLEDB外部データ接続装置」(=OLEDBConnectionオブジェクト)
 「コメント管理装置」(=Commentオブジェクト)
 「フリガナ管理装置」(=Phoneticオブジェクト)
 ・・・といった感じで、
 各機能・パーツ・ユニットたちに「装置」という言葉を付加すると、
 目に見えるものも見えないものも、オブジェクトとしてイメージしやすい気がします。

・「オブジェクト」とは、「Excelという工場」の中で働く「ミニミニロボット」という
  イメージでもOKかと思います。

・「オブジェクト」という言葉は、文字系の一般データ(2D的なモノ)との
  「対義語」のようなイメージでもあります。
  「3D的」な、「モノ」、「かたちあるもの」というイメージがあります。

・「絵」「画像」「写真」の場合は、「額縁に入った絵」といったイメージで、
  平面ではなく立体的なイメージで、
  つまり、2Dではなく3D的なイメージで扱われます。
  つまり、「オブジェクト」として扱われます。
  VBAで言う「2D的なモノ」とは、「文字系のデータだけ」とご理解ください。
  

・★★ そして「オブジェクト」には、「目に見える、見えない、大きい、小さい」、があります。
    シート、セル、グラフ、ピボットテーブルなどのように目に見えるものもありますが、
    反面、目に見えないものも「多い」です。
  

・★★「目に見える、見えない、大きい、小さい」、あるいは、
   「シートやセルのように "形をなしている "」、あるいは、「なしていない」にかかわらず、
   「細かい機能の集合体・複合体」「ユニット」「パーツ(部品)」」「ミニミニロボット」
   「装置」といった感じなら、「オブジェクト」と捉えても良いと思います。
  
  
  

・目に見える大きなオブジェクトの例・・・※カッコの中は該当する単一オブジェクト名です。
  →ワークシート(Worksheet)、
    グラフシート(Chart)、
    セル全体(Range)、
    埋め込みグラフ(ChartObjectやそこに埋め込まれたChart)、
    ピボットテーブル(PvotTable)、
    テーブル機能(ListObject) など。
  

・目に見えない・見えにくい中~大の規模のオブジェクトの例
  →エラー管理機能(Err)、
    セルへのCSS似な一括スタイル設定機能(Style)、
    ピボットキャッシュ(PivotCache)、
    OLEDBでの外部データ接続機能(OLEDBConnection)
    また、(Excelから独立はしてますが)ADO、DAO、など。

    ※何かの機能の「サブ機能」的なものも多いです。
  

・目に見える小さい/小さめなオブジェクトの例
  →セルのコメント機能(Comment)、
    セルのフォント機能(Font)、
    並べ替え機能(Sort)、
    フィルタ機能(AutoFilter)、など。
  

・目に見えない・見えにくい小さめな?オブジェクトの例
  →ConditionValueオブジェクト、
    各種コレクション、
    Connectionsオブジェクト、
    ColorStopオブジェクト、
    Watchオブジェクト、
    また、ADOやDAOのFieldオブジェクトなど
  
  

・★★ オブジェクトは、大別すると
   「単一のオブジェクト」と
   「コレクションオブジェクト(通称コレクション)」の
   「2つ」があり、
    逆に言うと、「2つしか」、ありません。
  

  ※ヘルプには「単一のオブジェクト」という記載が多く使ってあります。

  ※市販書籍では「単一オブジェクトのことだけを」「オブジェクト」と称したり
   コレクションが「オブジェクトではないかのように」誤解させる書き方で書いたり、
   あるいは、説明しなさ過ぎで「コレクションはオブジェクトではない」と誤解させたり、
   あるいは、「コレクションもオブジェクトの一種であるとすら」書かない、
   「当然、コレクションも階層構造に組み込まれているなんて、ひとっ言も」書かない、
   そういう「粗悪品」があります。

   そして大変残念ですが、それが「少なくない」です。
   ご注意ください。

   市販書籍や市販雑誌の記事、Web記事では、
   「オブジェクト」は「単一オブジェクト」のことを指すことが多く、
   「コレクション」は「コレクションオブジェクト」のことを指すことが多いです。
   でも、「両方ともオブジェクトだ」と「明確に」説明してくれる書籍や記事は少ないです。

   それも挫折「させられる」大きな理由の一つです。   
   それだと階層構造がイメージできなくなるので、ヘルプやオブジェクトブラウザを
   読めなくさせられてしまうからです。

   「ヘルプを妄信」するのもハマるようですが、でも市販書籍よりは、
   最低200倍は「マシ」です。
  

・★★「オブジェクト」は、基本的には「階層構造(オブジェクトモデル)」の中に含まれています。
  単一のオブジェクトもコレクションオブジェクトも階層構造の中に含まれています。
  
  参考図↓
  https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
  ↑超小さいので、Ctrlキーを押しながらマウスホイールを回して拡大してください。

  ↑この図のイエロー部分がコレクションオブジェクトで、水色部分が単一のオブジェクトです。

  単一のオブジェクトでもコレクションオブジェクトでも
  それ(=階層構造に含まれているということ)を必ず意識する・・・、
  そして「そこからオブジェクト操作のすべてをスタートする」・・・・、
  ということが「★超重要!」です。
  逆にそこを意識できないと、大変残念ながら100%、遅かれ早かれ、挫折してしまいます。
  

・★前述の2項目を合わせて考えて、
  「単一のオブジェクト」も
  「コレクションオブジェクト(通称コレクション)」も
  両方とも「オブジェクト」であり、
  両方とも「階層構造の中に含まれている」ということを、
  「はっきりと意識すること」が「上達の第一歩・不可欠」です。

  ★「階層構造を省略しない」「オブジェクト式」も、ここからがスタートとなります。、
  なので本当に重要です。
  

・★基本、コレクションと単一オブジェクトは、「同じ階層に居る」
  「コレクションは単一オブジェクトの左側に居る」と考えるほうが、
  上達しやすくなると思います。
  ヘルプやオブジェクトブラウザも理解しやすくなりす。

  参考図↓
  https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic01.pdf
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic02-disc-cut.pdf
  ↑超小さいので、Ctrlキーを押しながらマウスホイールを回して拡大してください。
  

・★ オブジェクトは「プロパティ、メソッド、イベント」を「保持・保有・内包」しています。
  よって、あるオブジェクトをオブジェクト変数に代入すると、そのオブジェクトに内包される
  「プロパティ、メソッド、イベント」もイモづる式にオブジェクト変数の中に含まれるかたちに
  なります。(単一のオブジェクトもコレクションも両方とも、です。)

  参考図
   オブジェクトとプロパティなどの関係のイメージ図
   https://euc-access-excel-db.com/00000WPIMG/2018-09-30---19-52-02.jpg

   オブジェクト変数にオブジェクトが代入された状態のイメージ図
   https://euc-access-excel-db.com/00000WPIMG/2018-09-30---19-44-13.jpg
   この2つの図の「階層構造」は、次項の
   『 上位・下位オブジェクトの「各種機能の流用」機能 』のことだ
   と思ってください。
  
  
  ※厳密には、オブジェクト変数に代入されるのは、「オブジェクトへの参照」、だそうですので
   オブジェクトへのショートカットアイコン的なものが代入されるようです。

   でもそこまで厳密に考えてしまうと習い始めのうちは混乱してしまうといけないので、
   「オブジェクトが代入される」と、とりあえず考えてしまってよいと思います。

   慣れてきたら、「オブジェクトへの参照」としっかり学習・意識できるようになれば
   いいと思います。

   よく考えると、次項の『 上位・下位オブジェクトの「各種機能の流用」機能 』は
   オブジェクトの参照が代入されているから利用できるのかもしれません。

  ※VBAの「オブジェクト操作」は、この「プロパティ、メソッド、イベント」を
   内側から引き出して使い、外側からはステートメントや列挙(Enum)、定数を
   使って動かします。
  

・あと、オブジェクトには、下位のオブジェクトへはもちろん、上位のオブジェクトにも、
  (言わば)「 ” 移動 ” できるイメージ」な機能?があります。
  そしてそれも、プロパティ・メソッド・イベント、と同じように
  オブジェクトに含まれている・・・という感じです。
  そしてその機能によって、
  移動先の、つまり上位や下位のオブジェクトの、プロパティやメソッドなどの機能を
  「流用」できます。

  (★ ムリヤリこじつけで言い表しますと、
   『 上位・下位オブジェクトへの自由往来機能 』、とか
   『 上位・下位オブジェクトの「各種機能の流用」機能 』
   といった感じになると思います。僕はそう呼んでいます。
   後者のほうが現実に近いでしょうか・・・。)
  

  これは、オブジェクトを代入したオブジェクト変数でも同じことができます。
  

  例えば、単一のWorksheetオブジェクトをオブジェクト変数に代入した場合、
  その「代入済みのオブジェクト変数」から、「Parent」というプロパティを使って、
  「上位に位置する」単一のWorkbookオブジェクトの「プロパティやメソッド」を
  流用することができます。

  結果、Workbookオブジェクトをオブジェクト変数に代入せずに済みます。

  本来は、上位(または下位)のオブジェクトを「頻繁に使用」する場合は、
  別個にオブジェクト変数に入れたほうがいいと思いますが、
  「一瞬ちょっと使うだけ」ということなら、そうせずに「流用」するほうが
  プログラムが読みやすくなることもあります。
  

・「オブジェクトメンバー」は「プロパティ、メソッド、イベント」のことです。
  なので、ヘルプでオブジェクトメンバーを調べると、何ができるのかが
  わかります。
  2013以降のヘルプでは一覧表が出てこないのでわかりづらいですが、
  2007、2010のExcelをお持ちなら、是非一度、
  各オブジェクトの「オブジェクトメンバー」の一覧表を見てみると良いと思います。
  もしくは、そういう一覧を作って公開して下さっているWebサイトもありますので
  「オブジェクト名 オブジェクトメンバ」で検索しても良いかもしれません。
  

・★「Range」オブジェクトは、ちょっと特殊なイメージで、
  いちおう「単一のオブジェクト」に分類されるくせに、
  そのオブジェクト単体だけで「単一のセル」も「複数のセル」も、両方を扱えます。
  
  つまり、単一のオブジェクトのくせに、「コレクション的な性格も持ちます」。

  そのためかわかりませんが、
  (本来は配列とコレクションにしか使えない)「For Each 文」が使えます。
  (=Rangeオブジェクトに対して「For Each 文」が使えます。)
  
  

※オブジェクトの「階層構造」については、テレビやエアコン、パソコン、などが
 イメージ的に理解しやすいと思います。
 テレビやエアコン、パソコン、などが複数あるお宅は多いと思いますので・・・。
  

  我が家オブジェクト(Applicatonオブジェクトに相当 )
    |     ※雨風をしのげる、などの機能を持つ。
    |
    |
    |___俺の部屋オブジェクト(Workbookオブジェクトに相当)
    |     ※他の部屋との音を遮断する、室温を確保する、などの機能を持つ。
    |      |
    |      |       
    |      |____エアコン01やテレビ01~03、パソコン01~02
    |             (WorkSheetやChartなどのオブジェクトに相当)
    |
    |
    |
    |___ヨメの部屋オブジェクト(Workbookオブジェクトに相当)
    |      | 
    |      |      
    |      |____エアコン01やテレビ01~02、パソコン01~03
    |             (WorkSheetやChartなどのオブジェクトに相当)
    |
    |
    |
    |___台所オブジェクト(Workbookオブジェクトに相当)
    |      | 
    |      |      
    |      |____エアコン01やテレビ01、パソコン01~02
    |      |      (WorkSheetやChartなどのオブジェクトに相当)
    |      |
    |      |____冷蔵庫01、棚01~02
    |      |
    |      |
    |
    |   
  
  
  
      
ところで・・・・、ですが・・・・、
  
  

上図を、

Applicatonオブジェクト         →「国」に相当
Workbookオブジェクト          →「都道府県」に相当
WorkSheetやChartなどのオブジェクト   →「市区町村」に相当
Rangeオブジェクト           →「番地」に相当

と言い換えた場合(例え換えた場合)、

「Range("セル番地")」と言った感じで
「Rangeオブジェクト」のことからいきなり書き出してしまう書き方は、
言ってみれば
「国」も「都道府県」も「市区町村」もすっ飛ばして、
「番地」からいきなり書き出して、しかも「番地だけ」しか書いてない手紙・・・、
ということと同じです。

「果たして、そんな手紙が、相手に届きますか?」とか、
「そんな書き方で、エラーが減ると、本気で、そう思います?」

ということを今一度、真剣に考え直してほしいと思います。
  
  

★ 「そんな学び方がほんとうに実力付くと思います?」
ということを今一度、真剣に考え直してほしいと思います。
  

巷の初心者本や教室では、「Range("セル番地")」という「省略だらけ」の書き方をとても多く、
教えます。

何の但し書きもせずに。
  
  

でも、ほんとうは、
もし「Range("セル番地")」からいきなり書き始める書き方を教えるなら、
・「これは一番エラーが出る書き方である」ということや、
・「本当はこんな教え方したくないけど、初心者用に仕方なく、最初だけ、この教え方をしている」、
・「これは本番では絶対に使ってはいけない書き方」
・「これは他人にも使ってもらうプログラムなら死んでも使ってはいけない書き方」、
という但し書きを絶対に入れなければなりません。
  
  

でも現実にはそこまで「但し書き」が入ることは、「まず」「ありません」。
  

ちなみにですが、ヘルプもオブジェクトブラウザも、
前述のたとえで言うと、「国」も「都道府県」も「市区町村」も「番地」も、
いちおう、全部を「省略しない書き方」が前提で書かれています。(基本的には。多くが。)
  

★いろんなところで「省略可能」とは書かれていますが、それを大推奨しているわけではありません。
(といいつつ、「Item」などはヘルプのサンプルプログラムでも省略して書かれてしまっているのでやむを得ないのかもしれませんが。)

ただ、ヘルプが意図していること・前提の構造としては、「省略しない書き方」が前提です。
サンプルプログラムでは「Item」が省略されてしまっていますが、各プロパティやメソッド、
引数その他の細かい説明部分では「省略しない書き方」が前提で説明されています。

また、サンプルプログラムであっても、「Item」以外は「省略を大推奨しているわけでは
ありません」。

また、オブジェクトブラウザのほうは、「Itemの省略を許してはいません」。
メカニカル+システマティックなツールなので・・・。
つまり、「Itemの省略」をすると、「オブジェクトブラウザは読めない」ということです。
自動的に中級には絶対に上がれなくなってしまいます。
  

であるのに、巷の本や教室では「初心者に対して」、「省略しまくりの書き方」しか教えません。(熟練者なら意味がわかっているので省略してもいいかもしれませんが。)

階層構造や、特に「Item」という名前のプロパティやメソッドを省略しまくります。
(繰り返しますが、ヘルプのサンプルが省略して書かれてしまっているので
 やむを得ないのかもしれませんが。)

ローカルウィンドウなどを活用して、慣れれば、そんなに難解でもないのに。

(細かいところとしては)「多くを省略しない前提」で書かれているヘルプを無視して、
省略ばかりして教えるわけですから、ヘルプが読めるようになる「わけがありません」。
  

初心者の方が、講師や多くの本に、そういう「手抜き」をされて、
「Range("セル番地")」からいきなり書き始める書き方を教えられてしまっているので、
結果、エラーが出まくり、すぐに挫折するのもムリの無いことです。

このような教え方がExcelが続いて20年も、「いまだに」改善されることなく、続けられています。

「残念」、「なぜ?」、という言葉以外に、言葉が見つかりません。
  

************************************
  

◆◆ 超重要!!! 「オブジェクト式」における「階層の境目」とは?

★ 結論から言うと、単一オブオブジェクトから単一オブジェクトまでが「1階層分」です。

★ 「ドット」は オブジェクトの切れ目です。
  
  
  

これまでに
『 オブジェクトには、大別すると「単一オブジェクト」と「コレクションオブジェクトがある」』
『 逆に、その2つしかない。』
と書きました。
  

★そして、そのなかでも、
「コレクションを持つ単一オブジェクト」と
「コレクションを持たない単一オブジェクト」があります。
  

★そして重要なのは、逆に考えて、
『 すべての単一オブジェクトにコレクションオブジェクトが存在するわけではない 』
ということも「あわせて覚えておく」・・・・ということも、とても重要です。
  

下図を見てもらうとなんとなくイメージできると思います。
(イエローの部分がコレクションオブジェクトで、水色の部分が単一オブジェクトです。)

  参考図↓
  https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
  ↑超小さいので、Ctrlキーを押しながらマウスホイールを回して拡大してください。
  

そして、この図のように、

コレクションをもつ単一オブジェクトは、
「コレクションオブジェクト」と「単一オブジェクト」の「セットで1階層分」・・・
ですが、

コレクションをもたない単一オブジェクトは、
「単一オブジェクト」1つだけで、「1階層分」・・・

と解釈すると、ヘルプとオブジェクトブラウザが読みやすくなりますです。
  
  
  

上記の参考図を拡大して見てみると・・・・、

「コレクションをもつ単一オブジェクト」とは(上から見てみると)、

WorkBook (コレクションは WorkBooks )
WorkSheet (同、WorkSheets )
Name    (同、Names )
Shape    (同、Shapes )

などがあります。
  

それに対して、「コレクションを持たない単一オブジェクト」は

Range
Font
Interior
Style

などがあります。
  
  

この場合

「コレクションをもつ単一オブジェクト」の場合は、
オブジェクト式として書くと・・・

WorkBooks.Item("ブック名") となり、
・・・つまり、WorkBooksコレクションオブジェクトとWorkBook単一オブジェクトで1階層分、

WorkSheets.Item("シート名") となり、
・・・つまり、WorkSheetsコレクションオブジェクトとWorkSheet単一オブジェクトで1階層分、

Names.Item("名前定義の名前") となり、
・・・つまり、NamesコレクションオブジェクトとName単一オブジェクト1階層分、

Shapes.Item("オートシェイプなどの名前") となり、
・・・つまり、ShapesコレクションオブジェクトとShape単一オブジェクトで1階層分、

となります。

(これは「そういうもんだ」という覚え方でも、最初のうちは良いと思います。
 いつか、「オブジェクトを」返す、戻す、という感覚と、
 『 実際に単一オブジェクトをゲットする仕事をしているのは Itemというプロパティかメソッド』
 ということが「体で」わかると、理解できるようになってくると思います。)
  

これは、
WorkBooks.Item("ブック名").WorkSheets.Item("シート名")
と続けて書いた場合でも同じです。

この場合は「2階層分!」ということです。
4階層分ではありません。
  

※★「Item」を省略したオブジェクト式ばかりを書いていると、
ここで言っている、
『 ドットが「オブジェクトの切れめ」』
とか、
『 単一オブジェクトから単一オブジェクトまでが1階層分」』
とか、
『 階層構造(オブジェクトモデル)一覧図は「単一オブジェクトを中心に」、「まず単一オブジェクトありき」「コレクションオブジェクトよりも単一オブジェクトが先」で読む 』
(※なんとなくコレクションオブジェクトのほうが先、みたいに見えてしまうかもしれませんが)
とかが、
イメージできなくなります。
なので、コレクションが在るのにもかかわらず「Item」を省略するとなかなか上達できません。
  
  

WorkBooks.Item("ブック名").WorkSheets.Item("シート名")は
WorkBooks("ブック名").WorkSheets("シート名") と、Itemが省略されることがほとんどですが、
実際は、
WorkBooks.Item("ブック名").WorkSheets.Item("シート名") なんだ、
これで2階層分なんだ。4階層分じゃないんだ。
ドットは「単なるオブジェクトの境目で必ずしも階層の境目ではないんだ!」と
WorkBooksやWorkSheetsが単一のブックやシートを特定・ゲットしてるわけじゃないんだ!
そしてあくまでも、単一のブックやシートを特定・ゲットしてるのは、
(もしコレクションがあれば)その中に居る「Item」という名前のプロパティかメソッドなんだ!
ということを強く意識してください。
  
  

それに対して、「コレクションを持たない単一オブジェクト」は
そもそもコレクションオブジェクトが存在しないため、
オブジェクト式として書くと・・・

たとえば、
Worksheet.Range
Range.Font
Range.Interior
Range.Style
Range.Range
というイメージ・・・

もう少し現実に即した感じで書くと

Worksheet.Item("シート名").Range("セル範囲")
Range("セル範囲").Font
Range("セル範囲").Interior
Range("セル範囲").Style
Range("セル範囲").Style
Range("セル範囲").Range
とか、
Worksheet.Item("シート名").Range("セル範囲").Font
Worksheet.Item("シート名").Range("セル範囲").Interior
Worksheet.Item("シート名").Range("セル範囲").Style
Worksheet.Item("シート名").Range("セル範囲").Range("セル範囲")
とか、

と言った感じで書き表すことができ、
【 .Range("セル範囲") 』以下には「Item」は存在しなく、
それぞれの「単一オブジェクト」のみ(「.Font」や「.Interior」のみ)で、1階層分、
となります。
  
  
  

★ なので、
コレクションを持つものについては、
ドットは階層の切れ目とは同一になりませんが、

コレクションを持たないものについては、
ドットはオブジェクトの切れ目でもあるし、(たまたま)階層の切れ目でもあり、(たまたま・意図せず・不本意ながら)同一になる・・・、

ということでもあります。
  
  

************************************
  
  

★★★★★★ 階層構造を省略しないオブジェクト式の意味

例えば、「Book1.xlsx」というブックの、「Sheet1」というシートの「A1セル」を
オブジェクト式で、階層構造の省略を無しに書くと、以下のようになります。

Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Item("Sheet1").Range("A1")

意味は、

◆ Excelという

◆ アプリケーションの中の、

◆ Workbooks コレクションオブジェクトの中の、

◆ 「Book1.xlsx」という項目(=単一のオブジェクト=ここでは単一のワークブック)の中の、

◆ Worksheetsコレクションオブジェクトの中の、

◆ 「Sheet1」という項目(=単一のオブジェクト=ここでは単一のワークシート)の中の、

◆ 「A1」というセル範囲

という意味です。
  

ただし、階層は以下のような分かれ方です。
  
  
  

 Excel.Application. _
  Workbooks.Item("Book1.xlsx"). _
   Worksheets.Item("Sheet1"). _
    Range("A1")

  
  
なお、階層の切れ目は、基本、「単一オブジェクト」が、階層の切れ目、です。

   ※「Excel.Application.」のところの階層がどうなのかについては
     僕も良く分かってはいません。
  

ドットは各オブジェクト(部分オブジェクト。コレクションも含む。)の切れ目であって、
階層の切れ目じゃありません。
  

ただし、コレクションを持たない単一オブジェクトもあるので、その場合は、、
オブジェクトの切れ目とが階層の切れ目と、「たまたま」、一致してはしまいますが・・・。
  

いずれにしましても、
「コレクションオブジェクトが、階層の切れ目になることは無い」・・・・、
と考えても差し支えないと思います。
  

なお、

『 ドットは各オブジェクト(部分オブジェクト。コレクションも)の切れ目ですが、
  階層の切れ目じゃあありません。』

ということの証明としては、イミディエイトにて・・・

? Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Parent.Name
(Worksheetsコレクションオブジェクトの親のオブジェクトの名前は何?)

でEnterしても、

? Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Item("Sheet1").Parent.Name
(「Sheet1」という単一オブジェクトの親のオブジェクトの名前は何?)

でEnterしても、

両方とも

「Book1.xlsx」と、

同じ名前のブック名が返ってきます。
  

これが証明です。
  

理由は、「×××.Parentプロパティ」は、指定されたオブジェクトの親オブジェクトを返す働きを持つものなので、両方ともが同じ親階層の「Book1.xlsx」を返してくる、ということは、
ひるがえせば、コレクションも、単一オブジェクトも、同じ階層に居る、と考えてさしつかえない、ということです。

もしかしたら、間違っているのかもしれませんが、階層構造が理解できるまでは、そう考えてもよいと思います。
  

  参考図↓
  https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic01.pdf
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic02-disc-cut.pdf
  ↑超小さいので、Ctrlキーを押しながらマウスホイールを回して拡大してください。
  

***************************
  

★ オブジェクト式の意味:その2

  参考図↓
  https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
  

以下のオブジェクト式を、上記の参考図も見ながら解説しますと、以降の説明のようになります。
  

 Excel.Application. _
  Workbooks.Item("Book1.xlsx"). _
   Worksheets.Item("Sheet1"). _
    Range("A1")

  
(01)
「Application オブジェクト」の中に含まれている、
「Workbooks プロパティ」が、
  

(02)
その1階層下に居る、
「Workbooks コレクションオブジェクト」を取得し(=引っぱってきてくれて)、
  

(03)
さらに、その「Workbooks コレクションオブジェクト」の中に含まれている
「Item プロパティ」が、
  

(04)
「Workbooks コレクションオブジェクト」の右側に居る「Book1.xlsx」という名前の
「Workbook オブジェクト(単一のオブジェクト)」を引っぱってきてくれて(=取得し)、
  

(05)
さらに、その「Book1.xlsx というWorkbookオブジェクト(単一のオブジェクト)」の中に
含まれている、「Worksheetsプロパティ」が、
  

(06)
その1階層下に居る、
「Worksheetsコレクションオブジェクト」を引っぱってきてくれて(取得し)、
  

(07)
さらに、その「Worksheetsコレクションオブジェクト」の中に含まれている
「Item プロパティ」が、
  

(08)
「Worksheets コレクションオブジェクト」の右側に居る「Sheet1」という名前の
  「Worksheet オブジェクト(単一のオブジェクト)」を引っぱってきてくれて(取得し)、
  

(09)
最後に、「Sheet1というWorksheet オブジェクト(単一)」の中に含まれている、
「Range プロパティ」が、
  

(10)
その1階層下に居る、
「Range オブジェクト」を引っぱってきてくれる(取得している)、

ということになります。
  

↑この説明、わかりにくいかもしれませんが、以下の図も参考にしてみてください。
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic01.pdf
  https://euc-access-excel-db.com/00000WPPDF/get-object-basic02-disc-cut.pdf
  
  

https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
を拡大表示して、
Application~Ranngeまでの部分をキャプチャしてから印刷するか、
別紙に書き写し、上記の番号と説明をそれに書き込んだりして、
「何がどこに居るのか」を確認しながら、何度も辿ってみてください。
  
  

そういう手間を惜しむと、
「VBAに限らずプログラミングは」、
挫折しやすいです。
  
  

上位の単一オブジェクトと下位の単一オブジェクトの間にコレクションオブジェクトが居る場合、
上位の単一オブジェクトの中には必ず、その下位のコレクションと同名のプロパティがあります。
そしてそのプロパティが、そのコレクションを取得して=引っ張て来てくれます。

つまり、
上位の単一オブジェクトと下位の単一オブジェクトの間にコレクションオブジェクトが居る場合は、
同名のプロパティとコレクションオブジェクトが存在することになります。
(「s」が付いたり、「ies」が付いたり、と複数形になっていることが多いです。)
 
オブジェクトブラウザで完全一致で調べると、コレクションとプロパティの2つがヒットします。
  

このあたりが少し意味がわかりづらいと思うのですが、でも「★重要ポイントのひとつ」です。

ですので、
先ほどの
https://euc-access-excel-db.com/00000WPPDF/object-model01.pdf
を見ながら、
ヘルプやオブジェクトブラウザを参考に、何度も辿っていくと、
いつか分かるようになると思います。
  

なお、上位の単一オブジェクトの中には、
下位のコレクションオブジェクトと同名のプロパティはありますが、
下位の単一オブジェクトと同名の(「s」や「ies」が無い)プロパティは存在しません。

また、「s」や「ies」のついた「コレクションオブジェクト」が、単一のオブジェクトを取得しているわけでもありません。
  

単一のオブジェクトを取得=ひっぱってくる仕事をするのは、あくまでも、
単一オブジェクトの左側に居るコレクションオブジェクトに含まれる
「Item」という名前のプロパティもしくはメソッドだからです。
  
  

なので、「Item」を省略したオブジェクト式を書いてばっかりいると、
そのへんの動きが「あいまい」になってボヤケてしまい、
ヘルプとオブジェクトブラウザが読めなくなります。
  
  

階層構造一覧(オブジェクトモデル)と、ヘルプと、オブジェクトブラウザが「リンク」し合わなくなります。
  

たとえば

正しくは、

Workbooks.Item("Book1.xlsx")

なのに、

「Item」を省略して

Workbooks("Book1.xlsx")

と書いてばっかりいると

「Workbooksプロパティ が、直接、
 Book1.xlsx という単一オブジェクトを取得している」

とか、

「Applicationオブジェクトに含まれる Workbooksプロパティ が、
 Book1.xlsx という単一オブジェクトを取得している」

と誤解しやすいです。
  
  

でも違います。

Book1.xlsx という単一オブジェクトを取得しているのは、

Applicationオブジェクトに含まれる「Workbooksプロパティ」、
が引っ張ってきてくれた「Workbooksコレクションオブジェクト」、
の中に更に含まれる、
「Itemプロパティ」です。
  

こんな説明で何かヒントがありましたでしょうか?
  

無かったら本当にごめんなさい。
  
  

でも、なので、「Item」を省略しないオブジェクト式が書けることは、非常に重要です。
  
  
  
  
  
  

##############################
##############################
  

◆◆ Vol.0001 での補足情報も、再度、掲載しておきますので、ご参考にしてみてください。

Vol.0001のバックナンバー

★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):~バックナンバー~

★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):~バックナンバー~


  

※「生データ」の種類については、次項でも説明していますが、ここでも少し補足します。
大別すると、以下の2つがあります。「一般データ」と「オブジェクト」の2つです。(「変数」の場合と同じように、「生データ」もこの2つしかありません。)

一般データ=文字ベースのデータ。数値、文字列、日付データ、TureやFalseなどの論理値など。
2Dデータです。

オブジェクト=原則的には「複数の細かい機能たちの集合体」のことです。
「ユニット、パーツ(部品)」とみなせることも多いです。3Dユニットというイメージです。
エクセルという工場で働く「ミニミニロボット」、というイメージでもいいと思います。
Excelの場合に限って言うと、「オブジェクト」とは、ブック、シート、セル、グラフ、ピボット、
あるいは、各種の機能のカタマリ(セルの書式操作機能全体、並べ替え機能全体、フィルタ機能全体、など)が相当します。
(この場合は、前述した「複数の細かい機能たちの集合体」と捉えている・・・ということになります。)

『 セルの書式操作機能全体、並べ替え機能全体、フィルタ機能全体、等々 』は、「ユニット・パーツ」、という捉えかたよりは、
それらの中には細かい設定項目や更なるサブ機能がたくさん詰まっているので、
そうなると、その「粒度」でオブジェクトとして扱える方が「ラク」だから、
「えーい!めんどくさい!もうこの細かい機能の集まりを "オブジェクト扱い "にしちゃえ!」ってなっちゃったのかもね?という感じです。(当方の勝手なイメージですが)

巷で良く言われる「対象」とか「操作対象」とか、「モノ」とかいうだけの覚え方で分かるならそれでもいいですし逆に、よく分からないなら、『 細かい機能たちの集合体、ユニット、パーツ(部品)」と、覚えればOKです。
「対象」とか「操作対象」とかいった、そういう覚え方だけにこだわる必要はありません。
(ちなみにですが、「対象」というだけの覚え方だとヘルプやオブジェクトブラウザとリンクさせられないため、なかなか理解が深まらないかも・・・?)

のちのちに出てくる、
「★ (06) 挫折しないための「オブジェクト」とは?」や
「★ (07)「オブジェクト」を「スチームオーブンレンジ」や「ATM」やに例えると?」、
「★ (08)「オブジェクトを取得する方法」とは?」、
「★ (09) 挫折しないための「コレクション」とは?」、
などでも少し詳しく説明しています。
    

変なたとえですみませんが「生のデータ」は、料理で例えると、『 素材(肉や魚、野菜、お米など) 』で、

「変数」は、『 その「素材」を仮置き・仮乗せしておく「小皿」「バット」「ボウル」のようなもの 』・・・です。

そして「変数」は、よく「空き箱」にも例えられます。(名前付きの「空き箱」に。)

なので「変数」は、
『 素材を仮に入れておくための「名前付きの空き箱」 』・・・というイメージでもいいかもしれません。 (※素材=プログラムの場合は「生のデータたち」)
  
  
※前号で・・・、

人によっては、

『 変数は、名前付きの「1枚のメモ用紙」のようなもの 』

とか、あるいは、

『 変数は、名前付きの「クリップボード」のようなもの 』

と考えるほうがしっくりくる方もいらしゃるかもしれません。

そのように考えても全然オッケーです。
  

・・・・と追加説明させてもいただきました。
  

*******
  

(ロ)生のオブジェクト(=通称:オブジェクト)

前項「★ (02)」で、オブジェクトとは、
・原則的には「複数の細かい機能たちの集合体」のこと。「ユニット、パーツ(部品)」とみなしてもOK。
・3Dユニットというイメージ。(文字ベースの、2Dな生データたちと比較して。)
・エクセルという工場で働く「ミニミニロボット」、というイメージでもよい。
・具体的には、ブック、シート、セル、グラフ、ピボット、などなど。
・シートやセル以外にも、機能のカタマリ(セルの書式操作機能全体、並べ替え機能全体、フィルタ機能全体、など)も、そう。
と簡単に補足説明させていただきました。

そして、それらの「オブジェクト」・・・それを「 "文字化"したもの」が「オブジェクト式」です。

なので、基本、「オブジェクト変数」に代入する、「 "生データ "に相当するもの」は、「オブジェクト式だ」と理解してください。

「オブジェクト式」とは、
『 オブジェクト(絵・アイコン・メニュー)などを、
    プログラムとして文字で扱えるように「文字のかたち」に変換したもの・・・ 』、
と、ざくっと理解して良いと思います。
  
  

具体的には、こんなような呪文みたいな長ったらしい式です。(例えば、Excel2010の場合)

Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Item("Sheet1").Range("A1")
  
  

この式は、「Book1.xlsx」の「Sheet1」の「A1セル」を表している「オブジェクト式」です。
これが「オブジェクト変数」に代入するモノ、です。
文字という2D的な形態ではありますが、本質は3D的な「部品・ユニット・各種機能のカタマリ・ミニミニロボット」のことをあらわしています。
  
  

※ 生のオブジェクトは、どちらかとういうと「3D」的なイメージです。
※ 巷では「オブジェクト」と呼ばれます。
当方では「生オブジェクト」とか「オブジェクト」「オブジェクト式」と呼んでいます。
※「オブジェクト式」は、「文字」ですから見た目は2Dですが、でも、
その「本質・中身」は「3D的なモノ・ユニット」、ととらえてください。

※★★ メッチャ注意事項01!!!
VBAでは、「オブジェクト式」をオブジェクト変数に代入しなくても
プログラムが書けてしまう仕様なので、それも諸悪の根源のひとつ、だと思います。
その仕様がかえってVBAをわかりにくくしています。
また、オブジェクト変数の学習をしなくなってしまい、VBAの「真のスタートライン」である、
「値やオブジェクトを返す関数の自作」をも遠ざけてしまいます。
そのため、大変残念ながら、「挫折」が、100%確実なものとなってしまいます。

※イメージとしては、
「オブジェクト」は、「実際に表示されているボタンやアイコンや絵や各種画面、
機能のカタマリ等々」とイメージし、
「オブジェクト式」は、「それらを(プログラミングに使えるように "文字化したもの "」
と思ってもらったらいいと思います。
「プログラムを書く画面の中」では、
「ボタンやアイコンや各種画面」といった「絵」を、「絵の状態のまま」動かすことは
できませんので、「絵」の状態のモノをいったん「文字」に置き換える必要があります。

※ なので、
「オブジェクト」という3D的な「絵」の状態のモノを、
プログラムの中で「文字として」扱えるように文字化して変換したモノが
「オブジェクト式」・・・・ というイメージでいいと思います。

※ ★★ メッチャ注意事項02!!!
そして、「オブジェクト」には「階層構造」があります。
これを意識することが「メチャクチャ」重要です。
そのことから逃げて、それを省略して覚えないでいると、
エラーが出まくるようになりますのでご注意ください。
例えば、「Book1.xlsx」の「Sheet1」の「A1セル」を表す「正式な」オブジェクト式は、
以下のようになります。

Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Item("Sheet1").Range("A1")

そして、その「セルの値」を表す式は、以下のようになります。(例えば、Excel2010の場合)

Excel.Application.Workbooks.Item("Book1.xlsx").Worksheets.Item("Sheet1").Range("A1").Value(xlRangeValueDefault)

例えばこれを、Rangeから書き出してしまって、

Range("A1").Value

とだけ書くことも可能ですが、これは階層構造を省略しまくってしまっていて、
エラーだらけになる「ダメな書き方」です。
ある意味「サンプル用限定」の書きかた、初心者・初学者向けに「最初のうちだけ」
仕方な く書く書き方で、「仕事」の「本番」で使うとエラーだらけになります。
「1つのブックの1枚のシートしか操作しない感じの想定」でしかまともに動きません。
そんな操作は現実には少ないです。
なぜダメなのかの補足を、のちに、「宛先に番地しか書いてない手紙」になぞらえて、
ほんの少しだけ後述しています。ご注意ください。
  
  
##############################
##############################
  
  
★ (07) 「オブジェクト」を「スチームオーブンレンジ」や「ATM」やに例えると?
  

オブジェクトを、「スチームオーブンレンジ」を「オブジェクト」に見立てると・・・、

「かなり強引」ですみませんが、
プロパティやメソッド、イベント、は次のようなイメージになります。
  
  
◎「スチームオーブンレンジ」における「プロパティ」

・「スチームする温度」を読取・設定するタッチボタン(=機能=命令)
・「スチームする時間」を読取・設定するタッチボタン(=機能=命令)
・「オーブンする温度」を読取・設定するタッチボタン(=機能=命令)
・「オーブンする時間」を読取・設定するタッチボタン(=機能=命令)
・「オーブン←→スチーム←→レンジ」を切り替えるタッチボタン(=機能=命令)
・「レンジする時間」を読取・設定するタッチボタン(=機能=命令)
・「解凍設定」を読取・設定するタッチボタン(=機能=命令)    などなど。

※って、勝手に想像で書いてしまいましたが、今のスチームオーブンレンジってこんな感じなんでしょうか?時代遅れかも?です。

※ご注意!!
 本当は、例えば「スチームする温度」を読取・設定するタッチボタン」は
 「メソッドの引数を設定しているだけ」、という感じのほうしっくりくると思います。
 でもここではあえてそうしていません。

 理由は、
 強引にであっても、
 『 プロパティもメソッドも「両方とも」「同じ」「タッチボタン(=機能=命令)」で
  あることには変わりはない 』・・・、
 と、
 そう理解することのほうが「大変重要」「超重要」だからです。
 
 そしてその理由は、
  実際、プロパティもメソッドも、動き・できることが少し異なるだけで、
  両方とも、大枠の仕組みとしては、
 「値やオブジェクトを返す自作関数」と同じような仕組みで動いているから・・・
 です。

 値を返す、オブジェクトを返す、何らかの動きをする、
 何らかの動きをしつつオブジェクトも返す、名前付き引数も使える・・・、
 そのような動きをするプロパティやメソッドの仕組みも、
 また、
 「値やオブジェクトを返す自作関数」の仕組みも、
 全部、同じような仕組みだからです。  

 そしてスチームオーブンレンジの場合で言えば、
  ・プロパティが「各種設定系」のタッチボタン、
  ・メソッドが「各種動作 " 開始 " 系」のタッチボタン、
 であるところだけが異なります。
 両方とも「タッチボタン=命令=機能」であることには変わりはありません。
  
  
◎「スチームオーブンレンジ」における「メソッド」

・「スチーム開始」のタッチボタン(=機能=命令)
・「オーブン開始」のタッチボタン(=機能=命令)
・「レンジ開始」のタッチボタン(=機能=命令)
・「解凍開始」のタッチボタン(=機能=命令)   などなど。

※繰り返しになりますが、プロパティもメソッドも「両方とも」「同じ」
 「タッチボタン(=機能=命令)」であることには 変わりはありません。
 プロパティの場合と同様です。

 そして、
  ・プロパティが「各種設定系」のタッチボタン、
  ・メソッドが「各種動作 " 開始 " 系」のタッチボタン、
 であるところが異なります。
    
  
◎「スチームオーブンレンジ」における「イベント」

・「タイマー」設定した時刻に、自動的にあたためなどを始める機能(タイマーイベント)
  (※なんてあるのかな?)
・トビラをあけた瞬間に、自動的にあたためなどをストップする機能(トビラOpenイベント)  などなど。

※レンジではないのですが、例えば ATMやコピーの複合機などですと、
「人が前に立つと」、「スリープモードから脱して液晶モニタが点灯し、通常電源ONモードに復帰する・・・」といった機能がありますが、
そういうものも「人が前に立ったタイミングで・その瞬間に・自動的に動き出す」わけですので、「イベント」と同じような動作だと言えると思います。
  

◎「スチームオーブンレンジ」の「目に見えないオブジェクト」。

電磁波を発生させるユニット(部品)
設定の計算をして実行するシステム基盤的なユニット(部品)
ファンのユニット(部品)
など。
  
  

◎オブジェクトを「ATM」にたとえると?

そのほか、オブジェクトを「ATM」にたとえると・・・こちらもかなり乱暴。強引ですみませんが、
あくまで「イメージ」として例えると以下のような「感じ」だと思います。

「引数」がキャッシュカードや預金通帳??って感じ?かな?

「メソッド」が
振込む(お振込)
通帳記入する(通帳記入)
引き出す(お引き出し)  など。

「あらかじめ決められた動作」
あるいは、
「あらかじめ決められた動作」を「実行」する、そういう機能。

「プロパティ」が
タッチパネル画面で行う各種の設定。
振込時なら相手の口座番号設定や金額設定
引き出しなら暗証番号の入力や金額設定  など。
「あらかじめ決められた各種設定項目」
あるいは、
「あらかじめ決められた各種設定項目」の「設定」を「実行」する、そういう機能。

※「メソッド相当の処理・機能」も「プロパティ相当の処理・機能」も、
「同じように」ATMのタッチパネル上で行う「処理・命令・機能」には変わりはありません。
  

「イベント」が自動スリープ機能や自動スリープ解除・自動画面起動の機能。(一定時間・誰も立たない時、逆に誰かが立った時。)

「目に見えないオブジェクト」は、通帳の印字ユニットや、内蔵のデータの通信ユニット(チップや記憶装置)など。

「目に見えるオブジェクト」はタッチパネルや、お札を取り出す部分の「自動開閉お札カウント排出ユニット」、など。

上記は、すべて、「ATM機」という「オブジェクト」の中に入っている、内包されている「機能」、(ある意味命令)です。
  

なお、そのほかに、「全国のATM " 網 " 」を「1つの大きなオブジェクト」と捉えると、
ATM機1機1機が「目に見えるオブジェクト」で、
それを裏方でつないだり動かしたりする「壁や地下に埋まっている」「ケーブルや管理システム」が、
「目に見えないオブジェクト」というイメージになります。

更には、ATM網全体は、○○○○銀行という親オブジェクトがあり、階層構造に組み込まれている、
とか、
ATM機は○○○○支店の第1フロアが親オブジェクトの時もある・・・、
あるいは、
135台めのATM機は○○○○支店の第1フロアが親オブジェクト・・・、
169台めのATM機は×××××支店の第3フロアが親オブジェクト・・・、
みたいなイメージです。
  

※★ご注意!!

スチームオーブンレンジのプロパティのときと同様に・・・、

「タッチパネル画面で行う各種の設定。振込時なら相手の口座番号設定や金額設定。」
というのは、本来は、
「メソッドの引数を設定してるだけ」と言うほうが正しいかもしれません。

でも、ここでは、そのことよりも、
「プロパティもメソッドも同じ命令=機能であり、できることがすこしちがうだけ。
 動きも両方とも同じで、値やオブジェクトを返す自作関数と同じような仕組みで
 動いており、名前付き引数も使える。」
と理解する方が重要なので、
あえて、
「タッチパネル画面で行う各種の設定。振込時なら相手の口座番号設定や金額設定。」
のことを「プロパティだ」として説明してしまっています。

本当は、ATMの色や大きさを変えられるタッチパネルの操作ができればいいのですが、
それが本当のプロパティ、だと思うのですが、現実にはそれは存在できないので
しかたなく、ムリヤリ、
「タッチパネル画面で行う各種の設定。振込時なら相手の口座番号設定や金額設定。」
のことを「プロパティだ」として説明してしまっています。
  
  
  
  

##############################
##############################
  
  
  

==============================
  

今回は以上です。

==========================================================================

バックナンバー目次とサンプル号
  
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01
  
  

----------------------------------------------------------------------
■独学者が1年後にExcelVBAを爆発的に上達させるための最低限の基礎知識メモ(ダイジェスト)
発行システム:『まぐまぐ!』 http://www.mag2.com/
配信中止はこちら https://www.mag2.com/m/0001691660.html
----------------------------------------------------------------------