● Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(詳細版:巷では個々の細かい用語の説明ばかりで、全体像としては、意外と短くはまとめられていないこと)

※ご注意!! この記事をコンパクトにした簡易版の説明のURLを書いておきます。そちらをお読みになってから、こちらの記事をお読みになってみてください。
「Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(簡易版)」
https://euc-access-excel-db.com/tips/ct07_se/ct075010_ac2ktips/whats-vba-compact

================
本文

VBAプログラムについては、「オブジェクト」や「プロパティ」といった個々の用語についてはそこそこ詳しく説明されているものの、「じゃあ、全体として、短く言うとどんなプログラミング方式なの?」ということについては、思った以上に説明されていません。

「やってりゃわかるよ」という手抜きとも取れます。

なので、そこでも初心者の方々は、つまづくかたもいらっしゃいます。
でもやっぱり、最初からある程度、明確な説明が欲しいんですよね。
私たちドシロートは・・・。

なので、ここではそのことについて僕なりにご説明します。

ではまずは短く・・・。

VBAプログラミングは、
「オブジェクト」に、
「プロパティ」を与え、
そのオブジェクトを、「メソッド」 や「関数」、「ステートメント」等々の「命令語たち」にて動かします。
そして各プログラムを自動実行させるタイミングについては、「イベント」というものを使います。
そういうプログラミング方式です。
(※ オブジェクトを操作することが多いですけど、もちろん操作せず文字操作などだけで終わることも多いです。)

さらにもう少し具体的に書きますと・・・

・「オブジェクト」に「プロパティ設定」をすることによって、
・「オブジェクト」に性質や動作特性または動作上の制約等を与え、そのあと、
・その「オブジェクト」の場合なら、「メソッド」や「ステートメント」「列挙(Enum)」「定数」といった命令語たちを使って・・・、
・また、「文字列や数値」の場合なら、「関数」や「ステートメント」「各種演算子」といった命令語たちを使って・・・、
・思い通りに動かす・・・、
・そういうプログラミング方式・・・。
(大雑把なイメージとしては、「動かす対象」は「オブジェクト」か「文字列や数値」かのいずれか、というイメージです。)

そんな感じでしょうか。

補足をつけて長ったらしく書いてしまいますと・・・

「オブジェクト(何らかの機能・黒子の機能の集合体・ユニット)」に、
「プロパティ」を与え(性質、特質、特性、状態、などを設定し)、

そのオブジェクトを、

「メソッド
   (命令の一種)
    特定のオブジェクト専用の命令です。
    特定のオブジェクトと紐付いた、そのオブジェクト独自・専用の命令です。
    そのオブジェクトでしか使えない、命令、です。
    (文字や数値は直接は動かせません。それは次の「関数」でやります。)」 や
「関数
   (こちらも命令の一種。
    「命令群」という感じ)。
    組み込み関数や自作関数があります。
    特定のオブジェクトに特化してはいません。
    基本、オブジェクトは動かせません
    (オブジェクトのプロパティのようなものを取得だけのことはできます。)
     ただ、メソッドのように「動かす」ことはできません。
    どちらかというと「文字や数値」を動かす
    (=加工・操作・判定等々をする)ためのものです。
    文字列の自動操作や自動計算、各オブジェクトのことを調べる、
    フォームやレポートでの自動処理、といった命令があります。」、
「ステートメント
   (こちらも命令の一種。
    定型基本命令構文、という感じ。)
    例えば、メニューバーやリボンで言うと、
    「ファイル、ホーム、編集、表示、・・・」といった雰囲気の
    共用の命令だったり、あるいは、OS寄りの命令だったり、
    スタート・ストップ・繰り返し・呼び出し・などの、
    基本構文的な共用命令・制御文だったり、です。
    こちらも特定のオブジェクトに特化してはいません。共用です。
    http://officetanaka.net/excel/vba/statement/index.htm 参照。)」
等々にて動かします。

このとき、
「オブジェクト」は、基本的には「メソッド」や「ステートメント」で動かし、
「文字列や数値」は、基本的には「関数」やこれまた「ステートメント」で動かします。
(基本的には、「関数」ではオブジェクトを動かせません。同様に、「メソッド」では文字列や数値を切ったり貼ったり具体計算したり、といったことはできません。「ステートメント」は公用的な感じで、「分岐や繰り返し・停止・始動・エラー発生時の分岐処理、変数設定、等々」といった感じの命令なので、両方に使えます。)

(大雑把なイメージとしては、「動かす対象」は「オブジェクト」か「文字列や数値」かのいずれか、というイメージです。)

そして各プログラムを自動実行させるタイミングについては、「イベント」を使います。
(「イベント」という、ある意味、最初から、「ある定められたタイミング」で実行させます。例えば、「ボタンを押した」「何かをダブルクリックした」「フォーカスを移動した」などのあらかじめ決められたタイミングです。「あらかじめ決められたタイミング」、には、エンドユーザーがマウスやキーボードで何かした「目に見える」タイミングや、ExcelやAccessが内部で黒子のように何かを自動動作させたときの「目には見えない内部的な」タイミングがあります。)

そういうプログラミング方式です。

(※ オブジェクトを操作することが多いですけど、もちろん操作せず文字操作などだけで終わることも多いです。)

かえって分かりにくくなってしまったでしょうか?

もしそうなら大変申し訳ありませんが、プロの方々がこのようなかたちの説明を、もっとわかりやすく簡潔にしてくれるといいなと思います。

以降に、個々の用語のもう少し詳しいご説明の記事を上げておきますのでご参考にしてください。

● 「オブジェクト」について
用語:VBAプログラミングでの「オブジェクト」 について

● 「プロパティ」について
用語:VBAプログラミングでの「プロパティ」 について

● 「メソッド」について
用語:VBAプログラミングでの「メソッド」 について

※関連記事

[★ AccessやExcel等のVBAの独学に超重要!!] とりあえず Access2000 テキストボックスやフォーム、サブフォーム、レポート、サブレポート、その他、等々を参照したいときのコードの書き方(参照方法)と重要注意事項

Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(巷では個々の細かい用語の説明ばかりで、全体像としては、意外と短くはまとめられていないこと)

Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(簡易版)

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