● Access2000VBA・Excel2000VBA独学~今選択しているオブジェクトの、『階層構造を省略しないオブジェクト式』の書き方・目次とサマリーもどき

  
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
  
  
※全部が全部、100%できるわけではないかもですが、割と多くのオブジェクトに対応できると思います。もちろん、ExcelVBAのオブジェクトだけでなく、Access、Word、PowerPoint、ADO、DAO、などにも応用が利きます。
  
  

(01)目的

今選択しているオブジェクトのオブジェクト式を、できるだけ階層構造を省略せずに書けるように。
そのために、ヘルプを少しでも読めるように。

ついでに、オブジェクトブラウザも少しでも扱えるように。
参考:『 ★★★★★★★★★★★★★★★★Access2000VBA・Excel2000VBA独学~★超重要!!オブジェクトブラウザの使用目的・使用意義~

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

(02)理由

今選択しているオブジェクトのオブジェクト式を、できるだけ階層構造を省略せずに書けることが、VBAのオブジェクト操作での「基本中の基本中の基本」であるから。

そして、基本がしっかりしていれば次のようなメリットがあるから。
  
  
(a)ヘルプが読めるようになるので、エラーが出ても自力で解決できるようになる。
あるいは、ヘルプが読めることでエラー解決が早くなる。

(b)『マクロの記録機能でオブジェクトを調べても、必要なオブジェクト式の書き方がわからないとき』に、なんとか自力でオブジェクト式が書けるケースが増える。

(c)Webでオブジェクトのことを調べても自分の欲しい情報が無かった時に、自力でオブジェクト式が書けるケースが増える。

(d)「Web検索でヒットした情報は、そもそも、自分が探しているWeb情報なのか?」の判断がすごく早くなるので探す時間がすごく減る。
そもそも、何を検索したらいいかがすぐにわかる。検索の範囲も意図的に狭くできる。

(e)APIやSQL、DAO・ADO、なども多少使えるようになるため、共用部品を作る力がアップする。それによるコスパのアップがしやすくなる。

(e)「マクロの記録」で作ったプログラムを「汎用」に作り替えたり、それをアドインメニュー化したり、汎用部品・共用部品を作るヒントにすぐにできる。

(f)以上のようなシーンが増えるので、短期間のうちに、中級の中・以上の腕前になれやすい。

(g)結果、いろんな面でコスパが良くなる。

(h)例えば有料で習いに行ったとしても、講習費用をできるだけ短期間に回収できる・・・、くらいの腕前になれる。

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

(02-2)巷でもっとも説明されていない、でも分かるとヘルプが読めるようになるポイント=階層構造やプロパティやメソッド

巷では、以下のような、オブジェクト式の記述の「省略=手抜き(=ある意味騙し・ウソの教え)」を、大変残念ながら、市販書籍や一般のVBA教室から、「うんざりするほど」、教えられてしまっています。

(ア)「Excel」や、「Application」、の省略

(イ)「Workbooks("ブック名").Worksheets("シート名")」の省略
※「ActiveWorkbook.Activesheet」で代用すらしない。
※いきなり「Range・・・」から書き始める。

(ウ)各種の「コレクションオブジェクト」が階層構造の中のどこに位置するかの基本的な説明の省略

(エ)各種の「コレクションオブジェクト」が保持・保有・所有・内包している、「Item」という名前の「プロパティまたはメソッド」の省略

(オ)オブジェクトには(大別すると)、「単一オブジェクト」と「コレクションオブジェクト」の2種類があるという説明の省略

(カ)「オブジェクトを取得するプロパティやメソッド」というモノは、「実はコレクションを取得するプロパティやメソッドである」というケースのほうが圧倒的に多く、実際に最終的なオブジェクトの取得を担当しているのは「そのコレクションに内包される」、「Item という名前のプロパティまたはメソッドである」という説明の省略。

例えば、
「ApplicationオブジェクトのWorkbooksプロパティ」で「(単一の)Workbookオブジェクトを取得」、
とか、
「WorkbooksオブジェクトのWorksheetsプロパティ」で「(単一の)Worksheetオブジェクトを取得」、
とかいった、「誤解しやすい間違った」解説をしています。

「ApplicationオブジェクトのWorkbooksプロパティ」が取得しているのは「実際にはWorkbooksコレクションオブジェクト」であり、Workbooksプロパティが「直接」、「Workbook」という単一オブジェクトを取得しているわけではありません。
最終的に「単一のWorkbookオブジェクト」を取得しているのは、「Workbooksコレクションオブジェクト」の中に含まれる、「Item」という名前のプロパティです。

この仕組みは、「WorkbooksオブジェクトのWorksheetsプロパティ」でも同じです。
Worksheetsプロパティが「直接」、何の経由もせずに、「単一のWorksheetオブジェクト」を取得することは不可能なのです。
実際に、「単一のWorksheetオブジェクト」を取得しているのは、Worksheetsプロパティによって取得された、「Sheets」コレクションの中に含まれる、「Item」という名前のプロパティです。

※もちろん、コレクションやItemを使わずに、いきなりオブジェクトを取得できるプロパティやメソッドもありますが、「コレクションやItemを使うタイプのもの」とくらべれば、圧倒的に少ないです。

(キ)ヘルプもオブジェクトブラウザも、階層構造はもちろん、この「Item」を省略しないことが「前提」で書かれている、ということの説明の省略。

以上の(ア)~(キ)の説明を、「全部」ちゃんとしてくれる「初心者本」は、多分、今の日本には1冊もありません。(一部を説明してくれる書籍は1冊だけ、存在します。)
ヘタをしたら、このことを「知らない」「講師」すらいます。
  

こんなあきれた状況ですから、
今の「日本のExcelVBAの教育界の教え方」では、
「初級の上」までは「挫折しない」かわりに、
「中級」には「死んでも上がれない」、
「そんな仕組み」、
となってしまっています。

同時に、ExcelVBA自体を、「他のプログラミグ言語の学習にも移行しやすいように」「プログラミングの入門」として理解する、、、、といった「オマケ」も、「まったく機能しなくなり」ます。

当然、「メンテしづらい、程度の低い、コスパの悪い」プログラム、もっと言うと「本来書く必要すらない無駄なプログラム」までをも、書かないといけない羽目になってしまいます。

悪いことに、これは「お金を払って習っていた」としても、前述の(ア)~(キ)のような教え方で教わってしまうと、「メンテしづらい、程度の低い、コスパの悪い」プログラム、もっと言うと「本来書く必要すらない無駄なプログラム」まで書かないといけない羽目になってしまいます。

どうか、お気をつけください。

基本、例えば、「A1」セルを表す、省略の無いオブジェクト式の書き方は以下のとおりです。

Excel.Application.Workbooks.Item("ブック名").Worksheets.Item("シート名").Range("A1")

「.(ドット)」は、オブジェクトとオブジェクトの区切りを示します。
(誤解しやすいのですが、これは「階層の区切り」ではなく、あくまでも「オブジェクトの区切り」、です。)

この書き方と「コレクションオブジェクトや単一オブジェクトを取得するプロパティやメソッド」の働きが理解できると、ヘルプを読む素地ができます。
少しVBAに慣れている人だと、それだけで、ヘルプがすらすら読めるようになる可能性もあります。

逆に言うと、この「省略の無い」「オブジェクト式の書き方」を「理解できない場合」は、「お金を払って習っていようが何をしようが」「100%、ヘルプは読めない」です。

結果、自力でエラーを解決することができません。
Q&Aサイトで回答してもらっても、回答の意味が理解できません。

なお、
Excel.Application.Workbooks.Item("ブック名").Worksheets.Item("シート名").Range("A1")
を、「Item」を省略すると、
Excel.Application.Workbooks("ブック名").Worksheets("シート名").Range("A1")
となります。

この場合、「.(ドット)」は、オブジェクトとオブジェクトの区切りというよりも、「階層の区切り」を示しているかのように見えます。

なので、「Item」という名前のプロパティやメソッドを省略しないその意味合い、がしっかりわかるようになったら、「Item」を省略して、「階層の区切り」と「みなし」て、扱っても一応はいいとは思います。
(できれば「誤解されるので」しないほうが無難ではありますが)
しかし、その場合でも、本来は「階層の区切り」ではなく、「オブジェクトとオブジェクトの区切りの省略形だ」とか、「みなしはあくまでも便宜上のみなしであって、正解ではない」ということが前提なので、それを忘れてはいけません。

でないと、後述しますが、「結局は遅かれ早かれ、中級にあがったとしても、またすぐそこで挫折する」ということになると思います。

なお、階層の区切りについては、オブジェクト変数に代入する際に、以下のように書くとイメージしやすいと思います。

Set 変数名 = Excel. _
       Application. _
        Workbooks.Item("ブック名"). _
         Worksheets.Item("シート名"). _
          Range("A1")

こう書くと、1行ずつが、「1階層ずつ」に対応しています。
(ドットが1行あたりに2つある箇所がありますが、2つあっても「1階層分」です。TypeName関数+Parentプロパティなどでイミディエイトウィンドウで調べれば、例えば「Worksheets」も「Worksheets.Item("シート名")も、親オブジェクトは「Workbook」と、同じものが出てくるので、それで確認できます。)

「Workbooks」や「Worksheets」がコレクションオブジェクトを表し、
「Item("ブック名")」や「Item("シート名")」が単一オブジェクトを表しています。

この書き方だと、

オブジェクト変数に、
 Excelという
  アプリケーションの中の、
   「Workbooks」コレクションの中の「Item("ブック名")」という単一のブックの、
    さらにその中の「Worksheets」コレクションの中の「Item("シート名")」という単一シートの、
     さらに、その中の「A1」というセル範囲、
を代入せよ。

という命令になります。

ヘルプやオブジェクトブラウザの構造・前提と照らし合わせても矛盾がありません。

習い始めのうちは、面倒でも、意味がわからなくても、特にVBAの場合は、「形から入る」ことが重要なので、このフォーマット=書き方でオブジェクト式を書くことがとても重要です。
そうしたほうが、自然に階層構造を理解しやすくなると思います。

そして、こんなに長ったらしくなってしまうので、だからこそ、「この長ったらしいオブジェクト式=生のオブジェクト」を「オブジェクト変数」を使って、その中に代入するほうがいいのです。

オブジェクト式が長い方が、「かえって」「オブジェクト変数」を使うようになれます。
初心者のかたでも、「あ、これは階層構造をなして数行にわたって書いてあるから、間違いなく、文字系のデータじゃなくてオブジェクトだ」とも明確に認識できます。

結果、そのことがスタートとなって「オブジェクトを返す自作関数」が作りやすくなり、「ある地点からの爆発的な成長・上達」が見込めます。

基本、「なぜそういう書き方をするか?」の意味・理由・メリットがわからないのに、省略した書き方ばかりを書いても、エラーを多発させるだけです。

オブジェクトブラウザとヘルプがある程度自由自在に扱えるようになるまでは、この少々面倒な書きかた=形から入らねば、いけません。

面倒に感じるかもしれませんが、しかし、オブジェクト変数の意味がわかれば、こんなのはひな型を作っておいて、それをコピペしてシート名とブック名を書き換えるだけです。
それに、一般データの扱いと、オブジェクト(=オブジェクト式)の扱い、もプログラムの中で明確になります。
特に、、「初心者が見ても」明確になりますから、引継ぎもしやすくなります。

  

今の日本のExcelVBAの教育界は、こういう「急がば回れ」をしない・教えない・即物的・刹那的な教えかたなので、「ある地点からの爆発的な成長・上達」をする人をもっと増やせるはずなのに、それができないまま、効率の悪い教え方に終始してしまっています。

本当に、無駄に10年以上も、無駄な教え方をしている業界だと思います。

なお、前述のオブジェクト式は、

Set 変数名 = Excel. _
       Application. _
        Workbooks("ブック名"). _
         Worksheets("シート名"). _
          Range("A1")

と書くこともできますが、ItemプロパティやItemメソッドのことを学んでいないのに、こういう書き方をすると、これも「手抜きしただけ」となり、理解が一向に進みません。
ItemプロパティやItemメソッドのことを学んでいないのに、こういう書き方をすると、ヘルプの内容やオブジェクトブラウザの構造・前提と照らし合わせると矛盾を感じると思います。

結果、遅かれ早かれ、挫折することになると思います。

なので、こういう書き方をするのは、本来なら、「Item」という名前のプロパティやメソッドについて十分理解し、オブジェクトブラウザが扱えるようになってからの方がいいと思います。

  

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

(03)オブジェクト式を書くための道具たち(重要度順)

(a)オブジェクトモデルの階層構図の全体図(オブジェクト所得・操作の羅針盤。最重要なツール。)
2000のものしかないけど役に立ちます。

この2000のヘルプの全体図は、ちょっと形が変わりますが、Webにもあります。
MSサイト→こちら /少し見やすく横につなげたもの→こちら /Excel2000の色付きの見やすいものを全部つなげたもの→こちら


  
  
(b)ヘルプ

参考記事
Access2000VBA・Excel2000VBA独学~XPやWin2000、あるいはその仮想マシンの中で、Office2000~2003でADOやDAOのヘルプをきちんと表示する方法と、2000系のヘルプと2007系の「”VBE”ヘルプ」の違い・良さ。
  
  
(c)VBE(Visual Basic Editor)の「オブジェクトブラウザ」
  
  
(d)VBEの「イミディエイトウィンドウ」
  
  
(e)「選択したオブジェクトの調査シート白地.xls」(当方自作の参考ツール)


  
  
(f)「TypeName関数」と「Parentプロパティ」と、VBEのイミディエイトウィンドウ
  
  
(g)「Stop」命令又は「ブレークポイント」と、VBEのローカルウィンドウで
  
  
(g-2)「TypeName関数」「Parentプロパティ」「Stop」命令を使った、「上位のオブジェクト階層構造を知る・取得する」ための自作関数

Access2000VBA・Excel2000VBA独学~「選択したオブジェクトの調査シート白地.xls」(当方自作の参考ツール)~3つの自作関数とともに。★ ~Current無省略オブジェクト式記述~
  
  
(h)Web情報・Web記事
  
  
(i)マクロの自動機能で自動作成されたコード(特に列挙体・列挙・定数を調べたいときに)

例えば、ワークシートに埋め込んだグラフの縦軸の色を赤に変える作業をマクロの記録機能で記録。

Sub test01()

' test01 Macro
'
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.Axes(xlValue).Select

'「線のスタイル」タブ?の設定
With Selection.Format.Line
.Visible = msoTrue
.Weight = 3.5
End With

'「線の色」タブ?の設定
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With

End Sub

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

(04)それらの「道具たち」を使いこなすために必要な知識(大雑把でOK)
  
  

(aa)プログラミングとは?VBAとは?(A図)
この図は、「オブジェクトとは?」を考える前の段階の、「プログラムを作るとは?」「VBAプログラミングとは?」ということについてまとめてあります。
基本、「この2つの図の中で意味がわからないことがあったら、VBAの上達は100%のぞめない」です。
なので、人によっては、こちらを先に理解するとよいかたもいます。特に、VBAの「超」初心者の方です。
そういう方がたにとってはこの図は「VBAプログラミング全体としての地図」とか、「プロシージャの中に書くものの地図」、「自分が今どの部分を学んでいるのかの地図」でもあります。ですので、ぜひ、(繰り返しになりますが)「この図の中で意味がわからないことがあったら、VBAの上達はのぞめない」という風に意識して頂いて、この図の中の「わからないところ」を潰す作業から入ってみてください。この図の中の「意味のわからないところ」を先生に聞きまくる、とか、Webで調べまくる、といった使い方をしてみてください。

一般的に、「プログラミング」とは、「変数」というものを思い通りに動かすことで「自動化を実現する」作業です。
そしてVBAプログラミングの場合、「変数」には大きくは「2種類」あります。
「一般的な変数」と「オブジェクト変数」の2つです。

※オブジェクトを動かすシーンでは、現実には「オブジェクト変数」のかわりに、「オブジェクト式」によるオブジェクト操作のほうが多くて、そちらが主流なのですが、「本来はオブジェクト変数を動かすほうがいい」と考えてしまうほうが「全体がすっきりする」と思います。
そのほうが「だからもっともっとオブジェクトに関する指導・教習をせねばならない。」となり、実際、初期の段階でもっとオブジェクト変数やオブジェクトやプロパティ・イベントの構造などつについてレクチャされたほうが、我々ド素人は、自分自身も、もっと能動的に成長を早められるし、挫折の回数もすごく減らせると思います。

そして本当に疑問なのが、どうして、ExcelVBAのプロの講師さんたちが、「VBAオブジェクト大図鑑」といった感じの本を出さないのかがさっぱりわかりません。
オブジェクトブラウザとヘルプの連携技、ヘルプの読み方、オブジェクトモデルの階層構造図の全体図、オブジェクトが保持する「プロパティ、メソッド、イベント、列挙」など、もっともっと初心者にわかりやすく説明してほしいです。

僕は、Excelのプロ講師さんたちが、まずExcelの画面やメニューの絵がまずあって、で、その横に、「このメニューや画面・機能・ダイアログはこのオブジェクト。そしてこのダイアログの中のこの設定はこのオブジェクト。設定項目はこの列挙。この操作はこのメソッド。そしてそれらでそういうことができる」という感じでいろんな説明がド素人にもわかるように書いてある、まさに、「オブジェクトとオブジェクト変数のことだけの」「ExcelVBAオブジェクト大図鑑」を書いてほしいと思います。

それを書かないってことは、もとから教える気が無いか、出し惜しみして「レベルの低いところでラクに儲けようと」、ラクして儲けようとしてるんじゃないか?と疑います。
ある意味、「一番肝心なことを”あえて”教えない、手抜き教習」。

Excelが出て20年もたったのに、そういう本がほとんどない(というか僕は一冊も知らない)、というのは、そういう、教える側・業界全体の怠慢ではないか・・・?と真面目にそう思います。

最近やっとExcelVBAに目覚めた、いち、ド素人のエンドユーザーの感想としましては。

20年もあったら、だれか一人くらいそういう本出すでしょ?ふつう。

それやらないから、低レベルなとこで、いまだにみんな挫折するのではないでしょうか?
いつまでたってもエラーが自力で解決できない・・・とか。
Q&Aサイトで聞いても結局意味が理解できず、絆創膏貼るだけの対応しかできない・・・。

もう日本の国際競争力のことやお若い方々の将来やプログラミングの一般教科化のことを真面目に考えたら、自分のホームページで無料Tips公開バンバンせずに、あいも変わらず低レベルなこと(例えば定型ビジネス集計とか)でお金とる人は「プロの教える人」とは呼べない時代になったのでは?ある意味ぼったくりに近いのでは?と思います。

※絶対にこちらも読んでおいてください!! ↓↓↓
★★★★★★★★★★★★★★★★ 超重要!!必読!!ExcelVBAが上達するかどうかの最初の分かれ道!オブジェクトとオブジェクト式について~★★★★★★★★★★★★★★★★
少し詳しく、でもそこそこまとめた記事です。
  
  
(ab)プログラミングの操作対象:「変数」に対する簡単な理解(一般変数とオブジェクト変数の区分やそれぞれの役割、さらに細かい種類、など)
  
  
(ac)プログラミングの操作対象:「配列」について
  
  
(ad)プログラミングの操作対象:「定数」についてと、VBA定数(?列挙体?)のイメージについて
  
  
(ae)プログラミングの操作対象:「予約語」とユーザーが付けられる名前について
  
  
(af)「VBE(VisualBasic Editor)」の画面の簡単な説明
  
  
(ag)簡単なプログラムの書き方例とVBEとの関係
  
  
(ah)プロシージャの種類とVBEとの関係
(ai)モジュールとVBEとの関係
(ai-2)SubプロシージャやFunctionプロシージャの呼び出しについて
 (SubプロシージャやFunctionプロシージャの実行方法や実行できる場所について)

ここでの上記の3つの項目は、以下の2つのPDFをご参考にしてみてください。
VBA関連の書籍を読んでいるときに、自分がどの部分について読んでいるかを知るための「地図」のような感じでも使ってみてください。

VBE_プログラムを書く場所について.pdf
↑↓ Ctrlキーを押しながらマウスのホイールを回して、拡大して見てみてください。
文字がおおきくはっきりと見えてきます。

  
  
SubプロシージャやFunctionプロシージャの呼び出し可能方向(実行できる場所・方法)について.pdf
↑↓ Ctrlキーを押しながらマウスのホイールを回して、拡大して見てみてください。
文字がおおきくはっきりと見えてきます。

これらの2つの図は、SubプロシージャやFunctionプロシージャの呼び出しについて、「プロジェクトエクスプローラを直接用いた説明文書」が無いと思ったので作りました。(SubプロシージャやFunctionプロシージャの実行方法や実行できる場所について書いてあります。)
特に、SubプロシージャやFunctionプロシージャの呼び出しについては「どれだけ人間がサボってラクをするか」に関係が深いですし、中級に上がるとかヘルプやオブジェクトブラウザをちゃんと扱えるようになるには必須の知識ですので、必ずマスターする必要があります。
この2つのPDFに書かれていますことは、こちら のPDFとともに、VBAの基本中の基本の1つですので、分かる人に良く聞いて、すべてが理解できて僕のミス記述を指摘できるようになるまで、100回でも200回でも聞いて、マスターしてください。(至る所で間違いを犯していると思いますので)
でなければVBAをやる意味が無いので、最初からVBAなんかやらないで、誰か外注で安くやってくれる人を探したほうがいいです(学生さんとか)。イヤミではなく本当に「ムダ」で時間やお金がもったいないので、「”基本”をやる気や時間が無い」とか、「コスパを重視したい」という人・会社・お店さんは本当にそうしたほうがいいです。

この2つの図も、「オブジェクトとは?」を考える前の段階の、「プログラムを作るとは?」「VBAプログラミングとは?」ということの一環としてまとめてあります。
そのため、基本、「この図の中で意味がわからないことがあったら、VBAの上達は100%のぞめない」です。
なので、人によっては、こちらを先に理解するとよいかたもいます。特に、VBAの「超」初心者の方です。
そういう方がたにとってはこの図は「VBAプログラミング全体としての地図」とか、「プロシージャの中に書くものの地図」、「自分が今どの部分を学んでいるのかの地図」でもあります。ですので、ぜひ、(繰り返しになりますが)「この図の中で意味がわからないことがあったら、VBAの上達はのぞめない」という風に意識して頂いて、この図の中の「わからないところ」を潰す作業から入ってみてください。この図の中の「意味のわからないところ」を先生に聞きまくる、とか、Webで調べまくる、といった使い方をしてみてください。最初のうちは詳細までやる必要はないですから、でも、『 外郭、アウトライン、全体像が「常に絶対に頭の中にあって忘却しない・すぐに思い出す」』という状態を目指してください。

  
  
(aj)関数について(数値・文字・日付などの文字ベースの各種の値の操作、ファイル操作、オブジェクト操作、など)
ワークシート関数とVBA関数の違い
オブジェクトブラウザ上では、ワークシート関数は「WorksheetFunction オブジェクト」のメソッドとして、VBA関数は、「DateTimeモジュール」や「FileSystemモジュール」、「Financialモジュール」「Conversionモジュール」「Mathモジュール」「Stringsモジュール」等々のメソッドとして表示されます。
  
  
(ak)ステートメントについて
  
  
(bg)「関数」と「ステートメント」は一般変数やオブジェクト変数の外側に居て、外側からそれらを動かすイメージ。「プロパティ」「メソッド」「イベント」はオブジェクト変数の内側に居て、内側からそれらを動かすイメージです。
各種の命令たちが、「変数の外側に居ようが内側に居ようが」、変数を動かすことに変わりはないので結局は大したことではないんですけど、ただ、それでもVBAプログラミングの全体像の把握の一助になれば・・・。
  
  
(al)プログラミングの操作対象:「オブジェクト」の事例(実際の画面の各パーツやメニューとの関係)
  
  
(am)プログラミングの操作対象:「コントロール」について(ユーザーフォーム上とシート上)
AccessのフォームはExcelのユーザーフォームの操作と少し似ている
コントロールと呼ぶのは同じ。ただしAccessは表の上にコントロールは作れない。
Excelはシートの上にコントロールを作れます。
  
  
(an)プログラミングの操作対象:「コレクション(=コレクションオブジェクト)」について
  
  
(ao)プログラミングの操作対象:「Enum・列挙型・列挙体・列挙」と「定数」について
各種設定ダイアログの、各種設定項目のドロップダウンの中の各種値が列挙体の各値になっているっぽいです。
  
  
(ap)プログラミングの操作対象:オブジェクトモデルの階層構造の理解(コレクション→単一オブジェクト→プロパティ、メソッド、イベント、ユーザー入力値、階層構造)
WorksheetオブジェクトやRangeオブジェクト、Chartオブジェクト、Shapeオブジェクトなどを例に。
5つの機能も含めた細かいところまで。
Application→コレクション→単一オブジェクト→プロパティ、メソッド、イベント、ユーザー入力値、階層構造
  
  
(aq)プログラミングの操作対象:すべてのオブジェクトはその1つひとつが「5つの機能」を保持している。(プロパティ・メソッド・イベント・ユーザー入力値・階層構造、は、厳密な説明を理解するより、どれも、全部、”オブジェクトが保持する「機能」たち”、と大雑把にとらえるほうが色々と理解しやすい)
  
  
(ar)プログラミングの操作対象:「オブジェクトの取得」と「オブジェクト式」「部分オブジェクト式」について
  
  
(bf)プログラミングの操作対象:「オブジェクトの取得」=「オブジェクト式の作成」=「オブジェクト式を書く作業」は、主に、番号でやるか、名前でやるか、列挙型の定数でやるか、の3パターンが多い。
  
  
(be)プログラミングの操作対象:オブジェクト変数と「真に代入されるのは”参照”」の意味についてと、でも「代入された=5つの機能が使える」と理解するほうが面倒くさくない、ということについて
  
  
(as)「5つの機能」はオブジェクトの内部に居座りつつ、オブジェクトを動かせる。
A図

  
  
(at)「関数」や「ステートメント」はオブジェクトの外側からオブジェクを動かせる。
A図

  
  
(au)プログラミングの操作対象:「オブジェクト式」と、オブジェクト式を代入したオブジェクト変数」の関係について(イコール関係・その他の視点について)
  
  
(av)プログラミングの操作対象:「一般的な”コンテナ”の意味」、「ヘルプに書かれた”オブジェクト”としてのコンテナ(埋込オブジェクト:ガワ、の意味」について
  
  
(aw)プログラミングの操作対象:ワークシートに埋め込まれたグラフの扱いとコンテナとVBEについて
  
  
(ax)イベントプロシージャの簡単な作成事例とVBEについて
  
  
(ay)ユーザーフォームの簡単な作成事例とVBEについて
  
  
(az)「標準モジュール」の使い方
消し方、解放、インポート・エクスポート(バックアップ)
  
  
(ba)「ワークシート関数」と「VBA関数」について
  
  
(bb)「値を返す関数」とその自作について(オブジェクトブラウザの操作の理解に必須)
  
  
(bc)「オブジェクトを返す関数」とその自作について(オブジェクトブラウザ操作の理解に必須)
  
  
(bd)目的のオブジェクトのインデックス番号がわからないときのあたりの付け方
  
  

=====================================
★ ヒント:「部分オブジェクトの取得」の基本は、まずは3パターンくらいから。

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

(05)今選択されているオブジェクトの、「階層構造を省略しないオブジェクト式」の作り方・書き方

(a)使うもの
「選択したオブジェクトの調査シート白地.xls」(当方自作の参考ツール)
・ヘルプ(主に、オブジェクトを特定するための構文を。)
・オブジェクトブラウザ
 (いろいろ。オブジェクトの上下の階層構造や下位オブジェクトのことなどを。)
・VBE(Visual Basic Editor)のイミディエイトウィンドウ
・Stop命令とVBEのローカルウィンドウ
 (主にプロパティの値やオブジェクトの上下の階層構造、列挙の設定値などを。)
・3つの自作関数(→こちらの3つ
・「TypeName関数」と「Parentプロパティ」
・その他の関数、ほか
  
  
(b)「オブジェクト式」とは?:「オブジェクト式」と「部分オブジェクト式」
  
  
(c)大まかな流れ(概要・ポイントのみ。何を使うかなど。)

    (03)のオブジェクト式を書くための道具たち(重要度順)
    「選択したオブジェクトの調査シート白地.xlsx」(当方自作の参考ツール)
  
  
(d)イミディエイトウィンドウで使う自作関数(ちょっとした省力化)

  イミディエイトウィンドウで使う自作関数

 ・すべての上位のオブジェクト名を一覧表示(「Obchk03Type」という自作関数)
 ・すべての上位のオブジェクトの名前を一覧表示(「Obchk04Name」という自作関数)
 ・すべての上位のオブジェクトのインデックス番号を一覧表示
        (「Obchk05Index」という自作関数)
 ・色の数値を「赤・緑・青」の数値に変換する(「GetIntByRGB」という自作関数)
  
  
(e)実例01:グラフシートのオブジェクト01~棒グラフの「目盛線」~
  
  
(f)実例02:グラフシートのオブジェクト02~棒グラフの「縦の数値軸(X軸)」~
  
  
(g)実例03:ワークシートの埋込グラフのオブジェクト01~棒グラフの「棒グラフの「系列」の1つ」~
  
  
(h)実例04:ワークシートの埋込グラフのオブジェクト02~棒グラフの「棒グラフの棒の1つ」~
  
  

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

(06)ヘルプの読み方(ヘルプ用語:その他)

(a)2000系のヘルプと2007系のヘルプの違い(どちらも優秀なのでできれば両方欲しいです)
Access2000VBA・Excel2000VBA独学~XPやWin2000、あるいはその仮想マシンの中で、Office2000~2003でADOやDAOのヘルプをきちんと表示する方法と、2000系のヘルプと2007系のヘルプの違い・良さ。

(b)ヘルプおきまりの言い回しなどについて

(c)プログラミング用語とヘルプ

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

(07)オブジェクトブラウザの使い方

(a)オブジェクトブラウザで今のオブジェクトの下位のオブジェクトやプロパティを探し、何が使えるかを調べる

(b)同時にヘルプのメンバーの一覧でも調べる(2010での見方、Web検索の仕方)

(c)F1でのヘルプとの連携

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

(08)ローカルウィンドウの使い方

(a)Stop関数との併用で瞬間瞬間?のオブジェクトのプロパティの値を調べる
  
  

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

  
  

(09)「VBE(VisualBasic Editor)」の操作の基礎

(a)最小限の基礎

(b)その他の使い方

  
  

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

  
  

(10) 「API」について

  
  

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

  
  

(11) 「SQL」について

  
  

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

(12) 「ADO・DAO(ミドルウェア)」について