● プロシージャの中で使う要素たち。(最初のうちは、生データと変数以外は、全部、「命令」だ、と思ってください。  ※学びが進むにつれて、より詳しく理解していけばOKです。)
※よって、「プログラム(プロシージャ内)で使うモノ」としては、大雑把には、「生データ(素材)、変数(小皿)、命令(道具)の3つだけ」・・・、と大きくとらえればOKです。そして、その中で、文字ベースの一般データに使うモノとオブジェクトに使うモノに細分化されていきます。
※ただし、「学びが進むにつれて、より詳しく理解していけばOK」といっても、中途半端にしていると必ず挫折してしまいますので、ちゃんとしたレベルまでをちゃんと覚えてくださることが不可欠です。)
  変数を動かすための
道具(=命令)たち
変数の種類
(プログラミングの
とりあえずの操作対象)
代入する
「生データ」
(プログラミングの
真の操作対象)
主に使用する
道具(=命令)たち
使用するシーン そのうち
値やオブジェクトを
返す命令
VBAプログラムが上達できない理由
(全部、教える側の怠慢が原因です。)
プ
ロ
グ
ラ
ミ
ン
グ
の
場
合

 ・ステートメント
※「ステートメント」は、「一般変数にもオブジェクト変数にも」、両方ともに対して使う共通の命令です。
変数宣言や条件分岐処理(If××)、繰り返し処理(ループ)等々の構文に使う命令語句(文?)です。
https://www.vba-ie.net/statement/index2.php

 ・VBA関数

 ・演算子
(+、−、*、/、=、など)
※「演算子」→「記号めいた」「命令」。というイメージ。
単語のようなものもありますが、実際に使うのは記号めいたもののほうが多いとは思います。
「=」「*(×)」「/(÷)」「+」「-」「Like」「And」「Or」「Is」などです。
https://www.vba-ie.net/programing/operator.php

 
・ワークシート関数
(WorksheetFunctionプロパティを使っての)

・プロパティ
(特定のオブジェクトに紐ついた、オブジェクトの中に内包される命令)

 ・メソッド
(同上)

・ある意味「イベント」も

 ・Office共通の関数

 ・列挙(Enum)

※「列挙(Enum)」→よく「ダイアログボックスで出てくる」、各種の設定項目等々。
(ダイアログの中で、線で上下に分かれてたり、四角い線で囲まれていたり、ドロップダウンやリストになっていたり、のカタマリ。次項の「定数」を内包するもの・含むものでもあります。「定数」からすると「親」に位置します。「定数」は列挙に含まれるもの、です。)


 ・組み込み定数
「列挙」の中の、実際の細かい設定。
(丸ポチつけたりするヤツ、とか、ドロップダウンやリストの中の実際の内容、など)



★ 一般変数

右項の「文字ベースのデータ」を操作するための変数(仮箱・小皿)です。

文字ベースのデータ。

 ・文字列
 ・数値
 ・日付データ
 ・論理値
(TrueやFalse)

など。

※「2D」的なイメージです。

主に以下のものを使います。(「主に」なので、「絶対にこれしか使わない!」ということではありません)


 ・ステートメント

 ・VBA関数

 ・演算子

(+、−、*、/、=、など)

 ・ワークシート関数
(WorksheetFunctionプロパティを使っての)
 ・各種オブジェクトのプロパティの値の加工
※・・・「一般変数」の場合は、主に「値(文字ベースのデータ)」を返す命令となります。



・VBA関数

・演算子
「算術演算子」「比較演算子」「論理演算子」
(https://www.officepro.jp/excelvba/basic/index6.html)

・ワークシート関数(WorksheetFunctionプロパティを使っての)

※VBAをやる前に、シートのほうで、「ワークシート関数」についてやっておくと、「値が返る」という感覚がわかるので、VBAの理解が深まりやすいかもしれません。

★ (01)オブジェクトブラウザとヘルプの読み方を教えてもらえていないから


★ (02)オブジェクトブラウザとヘルプを読むための、以下の知識を、初心者本や中級者本、パソコン教室がまったく教えていないから。

(a)オブジェクトの階層構造(オブジェクトモデル)の一覧図。
(Excel2000〜2003ヘルプに付属のもの。Webにもありますが、
 ちょっとコレクションが変な位置にあって学びにくいです。)

(b)単一オブジェクトとコレクションオブジェクトの位置関係。

(c)階層構造を省略しないオブジェクト式の書き方。
特に各種コレクションオブジェクトの、「Item」という名前のプロパティやメソッド。

(d)オブジェクト、プロパティ、メソッド、イベントの位置関係

(e)プロパティは「性質」、メソッドは「動作」とだけしか習っていない。そうとだけ理解するとまったく上達できないのに・・・。
実際には、「実態」としては、両方とも、「命令」の一種です。
そして、「値やオブジェクトを返す自作関数と似た仕組み」で動いています。また、「性質」や「動作」だけではなく「上位や下位のオブジェクトを取得する働きやその他の働きも持っています。
これを教えてもらえていないと、100%、どこかで挫折してしまいますが、逆に言えば、これがわかれば、ExcelVBAだけでなく、AccessVBAもWordVBAも、ADOもDAOも、「オブジェクトがらみ」のものは、みんな、わかるようになります。

(f)「オブジェクト変数」について。

(g)Variant型変数の使いどころ。

(h)「値やオブジェクトを返す」、そういう「自作関数」の作り方。
特に、「オブジェクトを返す自作関数」の作り方

(i)ローカルウィンドウでの階層構造のチェックと、変数の中身のチェックの方法

(j)イミディエイトウィンドウ+TypeName関数+Parentプロパティ、などでの親オブジェクトや、2つ・3つ・上位の階層のの調査方法

(k)ウォッチ式の使い方


★ (03)変数、引数、等々の「型」と「型」をつなげること、「型のリレー」について教えてもらえていないから。


★ (04)どこから何が「Call」できるのかの全体像を教えてもらえていないから。


★ (05)「SQL」のことを教えてもらえていないから。
 ・VBA関数やメソッド、プロパティに渡す「文字ベースの引数」の値の加工
 ・単純に計算(四則演算等々)
 ・開始日付と終了日付による期間日数の割り出し
 ・日付データからの生年月日や締め日、年度末、月度、年度、などの算出
 ・置換(ある文字列内の、特定の短い文字列や単語などの。)
 ・検索(ある文字列内の、特定の短い文字列や単語などの。)
 ・テキストファイルやCSVファイル処理の操作(読み書きその他。)
 ・フォルダ内の全てのサブフォルダのファイルのフルパスの取得
 ・フルパスからのファイル名のみやパスのみの切り出し
 ・文字列の結合、分離、切り出し、など。
 ・「グラフやシートなどの各種オブジェクト」やその他のモノに対する各種設定値の作成
 ・True/Falseの判断
 ・フラグ処理
 ・文字コード処理
 ・16進数、2進数変換。その他の各種変換。
 ・配列操作
 ・API利用、「SQL文」の作成
などなど

★ オブジェクト変数

右項の「生オブジェクト=オブジェクト式」を操作するための変数(仮箱・小皿)です。



※VBAのオブジェクトは、オブジェクト変数に代入しなくても、「生オブジェクトのまま」=「オブジェクト式のまま」でも操作ができてしまいます。
それは便利と言えば便利ですが、
結局は「オブジェクト変数が使えない」という大きな弊害を生むことが圧倒的に多いです。
結果、ほとんどの初心者・独学者が「学習が進むにつれて」、エラー処理や複数ファイルの同時操作、Word連携、Access連英等々、いろんな場面で「整合性がとれなくなり」挫折していきます。

なので、オブジェクト変数は「挫折しないために」は、本当に大切なものです。

生オブジェクト
=「オブジェクト式」

※できれば「階層構造」を省略していないもの」

※「3D」的なイメージです。





※VBAの「オブジェクト」は、「生のまま=オブジェクト式のまま」、オブジェクト変数に代入しなくても動かせてしまいます。
これが「質が悪い」、です。
結果、「オブジェクト変数を扱う学習をしなくなり」、「オブジェクトを返す自作関数の存在すら教えてもらえず」、大変残念ながら、挫折の道をまっしぐらになってしまいます。



主に以下のものを使います。(「主に」なので、「絶対にこれしか使わない!」ということではありません)


 ・ステートメント
(「ステートメント」は、一般変数もオブジェクト変数も共通でよく使う命令です。)

 ・プロパティ

 ・メソッド

・ある意味「イベント」も

 ・Office共通の関数

 ・列挙(Enum)

 ・組み込み定数



※プロパティとメソッドはオブジェクトの中に内包されます。
ですので、その命令たちを内側から引き出しつつ、外側からは、ステートメントやOffice関数、列挙や組込定数などで動かします。
 ・単一ブックの単一操作や複数ブックの同時操作
※・・・「オブジェクト変数」の場合は、主に「オブジェクト」を返す命令となります。





・プロパティ

 ・メソッド

・ある意味「イベント」も

 ・Office共通の関数
 ・単一シートクの単一操作や複数シートの同時操作
 ・『 「オブジェクトそのもの」を「引数」として使用する関数、プロパティ、メソッドなど 』の、その「引数」として。
 ・ウィンドウの操作
 ・Excelファイル以外のファイルの操作(テキストファイル、画像ファイル、Wordファイル、PwPointファイルなど)
 ・フォルダ内の全てのサブフォルダの各種ファイルの一括操作
 ・単一セルの操作、セル範囲の操作
 ・グラフの操作
 ・ピボットの操作
 ・名前定義の操作
 ・フィルタの操作
 ・並べ替え機能の操作
 ・Microsoft Query(簡易SQL)の操作   ※Accessの「クエリ」、SQL Serverの「ビュー」と同じような機能です。
 ・数式の操作
 ・色や罫線、各種書式設定の操作
 ・オートシェイプ(図形)、画像(図、写真等々)の操作
 ・印刷レイアウトの操作
 ・印刷設定の操作や印刷実行や連続印刷
 ・テキストファイルやCSVファイル処理の操作(読み書きその他。)
 ・Webブラウザ操作
 ・Word操作、Accesss操作、PwPoint操作、Outlook操作、など。
 ・VBAコード ・VBE画面」などの操作
 ・クリップボードの操作
 ・API利用
料
理
の
場
合
包丁
まな板
ナベ
菜ばし
おたま
フライパン
電子レンジ
オーブン
素材を仮置き
するための小皿
素材。

お肉・お魚
野菜
お米
パン
穀物
くだもの
包丁
まな板
ナベ
菜ばし
おたま
フライパン
========
電子レンジ
オーブン
下ごしらえの種類
=============
調理