ああそういえば、プロシージャもキャメル記法で書いてるな、と気付きました。コーディング規約というかルール決めていないので、ちょっとこの辺は弱いところです。ルールを固めておきたいです。Sub実は今までstopって何に使うんだろう?と思ってました。実行するとStopのところで止まるので、そのときにローカルウィンドウを見る、という使い方ができる!やってみました。変数の有効期間プロシージャレベル変数についてプロシージャ終了後にも値を保持しておきたいときには、Staticステートメントを使うという方法があります。Staticステートメントが使えるそうです。いつのタイミングで使うと良いのか、今はわかりませんが、知識として持っておくと、何かの時に使うという選択肢が増えますね。代入VBAの「やさしさ」が影響をして、勘違いを生じさせる可能性のある要因が含まれています。変数やプロパティに値を代入するには、Letステートメントを使用します。"hoge"今まで何気なくやっていた値の代入ですが、Letを省略していたということのようです。オブジェクト参照の代入Letに対して、オブジェクト参照の時は、Setになっていて、これを省略するとLetだと認識されて実行時エラーになる、ということと理解しました。書いてほしいので、定数や、列挙型を活用したいところです。便利!列挙型はプロシージャレベルで宣言することはできません。したがってEnumステートメントは宣言セクションに記述します。パブリックモジュールレベルにするのであればPubicキーワード、プライベートモジュールレベルにするのであればPrivateキーワードを構文の先頭に付与します。いずれのキーワードも省略した場合は、パブリックモジュールレベルとなります。常に同じではないような気がして、私はこの辺があいまいになっています。(SubプロシージャやFunctionプロシージャで省略したときもPublicになりますね。Baseステートメントを記述すると、そのモジュールでの配列の下限値を設定することができます。デフォルトでは0となります。values(2)Variant型の変数は配列として宣言をしなくても、配列を格納できます。その際に、配列のサイズの指定をする必要はありません。Array関数は配列を含むVariant型を返す関数です。10章で改めて紹介します。セル範囲をまとめて配列に取得するときに使っています。11章で紹介されているようです。arraylist配列の消去を行うステートメント。固定配列の場合は、要素がデータ型に応じて初期化される。動的配列の場合は、確保しているメモリが解放される。ユーザー定義型ユーザー定義型を宣言するには、以下のTypeステートメントを使用します。ユーザー定義型は、プロシージャレベルでは宣言することができませんので、Typeステートメントは宣言セクションに記述します。これも使っていないです。使えることを知りませんでした。Subユーザー定義型で実現できることは、クラス定義することで実現可能です。各要素に対して処理を行いたいときや、コレクションに追加したいときなどは、ユーザー定義型では実現できませんので、クラスを使うことになります。VBAでクラスを使ったことがないのです。クラスをどんなふうに使うのかはもう少し後に載ってそうです。commentコメントは、アポストロフィ記号(')を使います。実はこの記述方法はRemステートメントの省略形です。Remステートメントは「VBAのすべての命令はステートメントである」ということを表す好例です。アポストロフィ記号は実は「Rem」の略なのだそうです。知りませんでした!他にも、知らずに省略したりしていることが多そうです。表面的には変わらなくても、知っておくことは割と大事なことのような気がしています。.これで3章は終わりです!ここに書きながらなので、こんなに丁寧に書籍を読み進めたことはないかも、というほど丁寧に読んでいます。VBAの言語仕様」のところは、こうして追っていけたらと思っています。連載とは?Hata個人でアプリを作ってたりなかったり(゚ω゚)。https://hata33.mlCrieitは個人で開発中です。どんな軽い内容でも嬉しいです。