★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol0042:「やりたいこと」目線のほぼ全てのVBA学習項目の一覧表-01:概要
  
バックナンバー目次ページは→こちらです。

まぐまぐのページは以下です。
https://www.mag2.com/m/0001691660.html
  
  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■独学者が1年後にExcelVBAを爆発的に上達させるための最低限の基礎知識メモ(ダイジェスト)

Vol.0042

タイトル:★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol0042:「やりたいこと」目線のほぼ全てのVBA学習項目の一覧表-01:概要
  
  
バックナンバー目次とサンプル号
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01

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

皆様本当にお久しぶりです。長い間中断していてすみません。

これからまたVBAについてのお話を再開させて頂こうと思います。

とりあえず、半分以上の読者様が減ってしまうと思いますが、
でも少なくなってしまっても一応続けていこうかなとは考えています。

もしこのメルマガを待ってる方がいらっしゃいましたら本当にありがとうございます。
そして、長い間サボっていてすみませんでした。
(でも今後もサボるかもしれません。すみません。)

今日以降、少しのあいだ、

『「VBA」についての学習項目って、いったいどれくらいあるのか?』

ということについてお話をしようと思います。
(完全ではないですが、自分が調べた「基礎」のおおむねの部分で)

※デバッグの項目は除外。でもデバッグに役立つ情報も少なくないです。

と、その前に、前回のクラスモジュールのお話において、
「オブジェクトを設定するプロパティの作り方」の面で
「Property Set」プロシージャと
「Property Let」プロシージャの
どちらを使ったらいいかについて、書き忘れたので、
そのことについてもほんの少し、触れたいと思います。

参考:https://www.limecode.jp/entry/difference/propertylet-propertyset
(和風スパゲティのレシピ:「Property Let と Property Set の違い」)

結論から言ってしまうと、
「オブジェクトを設定するプロパティ」を作る場合、
実は、
「Property Let」プロシージャ でも、
「Property Set」プロシージャ でも、
どちらでもOKだそうです。

「どちらがどういうTPOのときに適しているか?」までは今の僕にはわかりませんが、
クラスモジュールを何度も造り続けていれば、きっと、
「どのようなときにどちらが向いているか?」は
見えてくるのではないかと推測しています。

一応こちらのWebページを参考にしてみてください。

https://excel-ubara.com/vba_class/VBA_CLASS_15.html
(Excelの神髄:「PropertyのSetはLetでも良い」)

あと、以前、
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01-37
において、

「メソッドでもプロパティでも」
「オブジェクトを返すだけ」という「動き」を取る(あるいは「させる」)ことができる・・・、

ということを書きました。

つまり、
『 クラスモジュール(≒オブジェクト)を自作したうえで、
 更にその中で自作する「オブジェクトを返す方法」 』
については、以下のような2つの方法がある・・・ということです。

(a)プロパティを使う方法

1:Property Get プロシージャを使う方法

(b)メソッドを使う方法

2:Functionプロシージャを使う方法

※なお、上記の1、2とあるうち、その両方において、
 オブジェクトを返すには、
 『「Set」というキーワードを用いての代入ステートメントを書いて実行する(=返す) 』
 というかたちになります。

実際、組み込みのプロパティやメソッドにも、恐らく、
このような方法が使われているのではないかと思います。
(※「C++」で書かれているのか何で書かれているのかわかりませんが・・・。)

なお、組み込みのプロパティやメソッドにおける、「オブジェクトを返すモノ」については
以下のようなものがあります。

『 (a)プロパティを使う方法 』に相当するモノの場合

Workbook.Worksheets プロパティ
Worksheet.Range プロパティ

Worksheet.Cells プロパティ
Application.Cells プロパティ
Range.Cells プロパティ

Range.Range プロパティ
Range.Font プロパティ
Range.Interior プロパティ
PivotCell.PivotTable プロパティ
PivotLayout.PivotTable プロパティ
Range.PivotTable プロパティ
Worksheet.QueryTables プロパティ
ListObject.QueryTable プロパティ
Range.QueryTable プロパティ
×××.Item プロパティ
×××.Parent プロパティ
×××.Application プロパティ

などなど。

『 (b)メソッドを使う方法 』に相当するモノの場合

Workbooks.Open メソッド
RecentFile.Open メソッド
Range.AddComment メソッド
Range.ColumnDifferences メソッド
Worksheet.PivotTables メソッド
PivotCache.CreatePivotTable メソッド
Workbook.PivotCaches メソッド
Workbook.NewWindow メソッド
×××.Item メソッド
×××.Add メソッド

などなど。

以上はすべて、プロパティもメソッドも「オブジェクトを返すタイプ」のものです。
(中には開く、新規作成、といった「何らかの」「動き」をしつつ、同時に、
 その結果生成されたオブジェクトを返す・・・、というモノもあります。)

以下、補足です。

※「×××.Item」はプロパティにもメソッドにもあります。
  (コレクションオブジェクト=通称コレクションに、
   「×××.Item」という名前のプロパティかメソッドの
   いずれかが内包されています)
 「×××.Parent」や「×××.Application」はメソッドには在りません。
 プロパティにのみ存在します。

※「ListObject(=ListObjectオブジェクト)」はバージョン2007以降に追加された、
 「テーブル機能」のことです。
 そして、「QueryTable(=QueryTableオブジェクト)」単体は、
   バージョン2003までは「MicrosoftQuery」という機能の処理結果の表とイコールでした。
  (バージョン2003以前には、2007以降の「テーブル機能」は存在しないので。)
 で、2007以降の「MicrosoftQuery」は、
 『「ListObject」の中に埋め込まれた「QueryTable」単体 』という構造に変更になりました。
 なお、「パワークエリ」の結果の表も『 2007以降の「MicrosoftQuery」』と同じ構造です。
 「ListObjectオブジェクト」の中に「QueryTableオブジェクト」単体が埋め込まれています。

※例えば同じ「Cells」プロパティでも、
 「Worksheet.Cells」、「Range.Cells」、「Application.Cells」、といった3つがあり、
 それぞれ動きが微妙に異なります。
 「同じ動きをする・・・」ということは、「あ」「り」「ま」「せ」「ん」。
 つまり、3つとも、同じように「オブジェクトを返す動きをする」にしても、
 「返し方・あるいは返ってくるモノが微妙に異なる」、ということです。
 何が異なるのかは、ヘルプをちゃんと読むか、実際にコードを書いて
 色々とチェックしてみないとわかりません。
 Webや市販書籍でこのことをまともに説明をしているモノは見たことがありませんので。

 市販の書籍やWeb、動画は、ほぼ100%、
 そのような「ちゃんとした」「区別」をしないので、
 つまり「ごっちゃに」「クソミソ」に説明するので、
 たとえばこの3つが「同じ動きをする」と騙されやすいです。

 そのせいで・・・、
 例えばヘルプで「Cells」を検索すると3つ出てくるわけなんですが、
 自分が求める「Cells」ではないヘルプページを 見せられてしまい、
 あるいは、「どれを見たらいいか」の「区別がつかず」、
 結果、何も解決できない、 いつまで経っても解決できない、と
 いったトラブルを呼び起こします。
 Web検索についても同様のトラブルを呼び起こします。
 特に、最近のExcelヘルプはWeb形式なので。

 「同名のプロパティやメソッド」は、ほかにもそこそこありますが、
 ほぼ100%の書籍やサイト、Youtube動画、が、このことを20年以上、
 まったく放置のまま、まるできちんと説明していません。
 (つまり、同名のプロパティ名やメソッド名の前に、
  どんなオブジェクト名が付くか?をまるで説明しないのです。)

 これは「昭和」を引きずった、ダメな教え方です。

 『 多くの初心者の方がこのようなちゃんとした説明を受けておらず、
   結果、ほぼ100%、ドツボにハメられます 』。

 ちなみにですが、
 組み込みのプロパティの場合、たとえば、

 「Worksheet.Cells」は(CellsはCellsでも)
    「Workseet単一オブジェクトに含まれる(=属する)Cellsプロパティ」、
 「Range.Cells」は(同上)
    「Rangeオブジェクトに含まれる(=属する)Cellsプロパティ」、
 「Application.Cells」は(同上)
    「Application単一オブジェクトに含まれる(=属する)Cellsプロパティ」、
 「×××.Item プロパティ」は、(ItemはItemでも)
    「×××コレクションに含まれる(=属する)、Item プロパティ」、
 「×××.Parent プロパティ」は(ParentはParentでも)、
    「×××オブジェクトに属する、Parent プロパティ」
      (↑単一、コレクション、両方)、

 という意味です。

  (※Rangeオブジェクトは、一応は、「単一」のオブジェクトとして
    位置づけられていますが、
    でも、「コレクションオブジェクト」としての要素も持つ、
    ちょっと特殊なオブジェクトです。
    つまり、両方の要素を持ちます。)

 組み込みのメソッドの場合なら、たとえば、

 「Workbooks.Open メソッド」は、(OpenはOpenでも)
    「Workbooksコレクションオブジェクトに含まれる(=属する)、Open メソッド」、
 「RecentFile.Open メソッド」は、(同上)
    「RecentFile単一オブジェクトに含まれる、Open メソッド」、
 「×××.Item メソッド」は、(ItemはItemでも)
    「×××コレクションオブジェクトに属する、Item メソッド」、
 「×××.Add メソッド」は、(AddはAddでも)
    「×××コレクションオブジェクトに含まれる、Add メソッド」、
 という意味です。

 ※オブジェクトが「単一か?コレクションか?」は、
  オブジェクト名が複数形になっているかどうかで区別することが多いです。
  それで判別が付かないときはヘルプを読むか、オブジェクトブラウザにて
  「Item」という語句にて検索し、
  求めるオブジェクト名がヒットすればコレクション、出てこなければ単一、
  という意味になります。
  「Add」で検索するのもいいかもしれませんが、「Item」で検索するほうが
  確実な気がします。

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

長々と前置きを書いてしまい、すみませんでした。

では、今日の本題に移りたいと思います。

まずこちらの一覧表を見てください。

https://euc-access-excel-db.com/00000WPPDF/vba-learning-items-by-purpose.pdf

紙1枚の中に印刷できるようにしてあるので、メッチャ文字が小さいですが、
Ctrlキーを押しながらマウスのホイールを回すと綺麗な文字で拡大できます。

Chromeなら
・右クリックして「名前を付けて保存」か、
・Ctrl+Sの操作にて、
PDFファイルとしてダウンロードできます。

それをコンビニでA3用紙でPDF印刷すると、一応読める大きさの文字で見ることができます。
PDFファイルのままだとスクロールが面倒くさいので、
A3用紙に印刷してしまったほうが見やすいし、持ち運びもラクで、良いかもしれません。

自分もコンビニでA3印刷したものを見ながら今これを書いています。

あと、
https://euc-access-excel-db.com/00000WPZIP/vba-study-table.zip
からZipファイルをダウンロードして解凍もしてみてください。

その中にある、「VBAプログラムの構成要素=その学習項目_やりたいこと付き.pdf」という
ファイルが同じ内容です。

また、それを作る元となった、
「VBAプログラムの構成要素=その学習項目_やりたいこと付き.xls」というファイルも
入っていますので、ご自分で「いや、これは違うだろ?」と思ったことや、
「追記しておこう」と思ったことなどを追記して、ご自分なりのPDFに作りかえることもできます。
(一覧表は「Excel初心者」の僕が作ったものなので、間違いがあるかもしれないので。)

なお、このZipファイルの中にはそのほかに、

「ステートメント要素new01.pdf」
「ステートメント要素new01.xls」

が入っていて、また、「初心者本エリア」というフォルダもあり、その中には

「VBAプログラムの構成要素=その学習項目_やりたいこと付き02_初心者本エリア.xls」
「ステートメント要素new01_初心者本エリア.xls」

というファイルも入っています。

「初心者本エリア」のファイルの中の2つのxlsファイルは、
先の2つのPDFに、「半透明のイエロー」のテキストボックスにて、
市販の「初心者本」がカバーするエリアを示してあります。
(困ったことに中級も、上級も、初級エリアと大きな違いはありませんが。)

なお、古いWindows10をお使いの方は、
ファイルのファイル名が文字化けしているかもしれませんが、その場合は、
新しいWindows10やWindows11をお持ちの方のパソコンで見させてもらうか、
本メルマガのURL先の画像などを見ながら、「これがこっちか」と区別してみてください。

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

では、まず、

https://euc-access-excel-db.com/00000WPPDF/vba-learning-items-by-purpose.pdf

についてご説明します。

開いたら、Ctrlキーを押しながら、ホイールを前に何回か回して、拡大してください。

★ まず、
  この表は「やりたいこと・処理・目的」目線の学習項目の一覧表です。
  市販書籍によくある、「逆引き辞典」的なイメージかもしれません。

  また、「プロシージャ」の中に書くモノ、の一覧表でもあります。

  「プロシージャ」とは、VBAプログラムにおいての『「最小単位」のプログラム 』、です。

横軸に項目名を見ると、左から、

(01)やりたいこと・利用シーン
(02)学習項目01「生データ」
(03)学習項目02「変数」
(04)学習項目03「命令01(組込タイプ)」=「キーワード」(=予約語)
(05)学習項目04「命令02(自作タイプ)」=「自作のキーワード(超意訳)」

となっていて、「学習項目01」~「04」のそれぞれの列に、
各学習項目の概要・区分などが書いてあります。

これは、「学習順」と思ってもらってもいいと思います。

(02)が理解できない人が、(04)や(05)はできない、とか、
(01)と(02)が理解できない人が、(03)や(04)の理解はできない、
みたいな感じです。
(市販書籍は、(01)も(02)もまともに教えずに(03)を教える、
 というスタイルがかなり多いです。
 なので、みんな自動的に挫折します。)

これはExcelに限らず、Wordでも、Accessでも、PowerPointやOutlookでも同じです。

縦軸の下方向への項目としては
(イ)V B Aプログラミングの場合

(ロ)お料理の場合
とに区別してあります。

VBAに限らず、プログラミングは「お料理」に似たところがあるので、
「(イ)V B Aプログラミングの場合」を、お料理の場合に例えて、書いてあります。
まあ、「おおむね」ということで「厳密に」ということではないので、
「だいたい」でイメージしてください。「だいたいのイメージ用」です。

で、その、
「(イ)V B Aプログラミングの場合」の中には、

(A)一般データ操作(料理でいうところの「下ごしらえ的」な操作)
(B)オブジェクト操作(料理でいうところの「メイン調理的」な操作)

という2つの区分けがしてあります。

こちらも、Excelに限らず、Wordでも、Accessでも、PowerPointやOutlookでも同じです。

VBAでは「生データ」を大別すると、
「一般データ(文字列、数値、日付、True/Falseなどの文字系のデータ。2Dのイメージ)」と
「オブジェクト(「装置」のイメージのもの。3Dのイメージ)」の
2つがありますが、
それらの操作についての区分が書いてあります。

「一般データ(文字系のデータ)」の操作には
どんなモノを使うのか?、あるいは、その学習が必要か?

「オブジェクト(「装置」)」の操作には
どんなモノを使い、あるいは、その学習が必要か?

についての概要が書いてあります。

結果、

例えば、(02)の「変数」のうちの「オブジェクト変数」(=下段)を操作する際に必要な学習項目
としては、
(03)の部分を見ると、

「プロパティ」や「メソッド」っていうものがそのひとつとして存在するんだな・・・、

とか、

これら「プロパティ」や「メソッド」っていうものは、
  「一般変数の(03)のところには書いて無いから一般変数の操作には使わないんだな」・・・

とわかり、
さらに(04)のところ(つまりすぐ右)を見ると、「できる」とあるので、

「プロパティ」や「メソッド」っていうものは「自作することもできるんだな」・・・

ということがわかります。

そんな感じです。
(のちほど、もう少し詳しく説明します。)

そうやって見ていくと、VBAの「基本(言語仕様)」にはかなりの分量があることがわかります。

※注01
「一般データ」は僕が勝手に言ってることですが、プログラミング一般としては、
「プリミティブ(原始的な、基礎的な、の意味)」というイメージで捉えることもあるようです。
(本来は、特に「変数」の「型」というものにおいてで。生データそのものではなくて。)
詳しくは
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AA%E3%83%9F%E3%83%86%E3%82%A3%E3%83%96%E5%9E%8B#%E6%A6%82%E8%A6%81

https://wa3.i-3-i.info/word15876.html
などをご参考にしてください。

『プリミティブな「型」の変数に入れる生データは、
 「プリミティブな生データ」と言ってもいいかもしれない・・・』、
みたいに勝手に解釈しています。
ただ、自分はそれを「一般データ(文字系の・2Dの)」と称したほうがラクなので、
そう解釈してしまっています。

※注02
ここでは「オブジェクト」を「あえて」「生データの一種(片われ)」として扱ってしまいましたが、
厳密にいうと少し違うと思います。
今後どこかで出てくる、「オブジェクト変数」に「代入するもの」、として、
「一般変数」の場合と比較したときに、少し「言いよう」に困ってしまうので、
なので、僕が勝手にそう説明しています。

市販書籍やWebなどでこのような説明をする人は居ないと思います。

が、ただまあ、初心者のうちは「「生データ」の一種(片われ)として」理解してしまうほうが
「VBA全体」「VBAの文法・仕様」を理解しやすいと思いますので、より詳しいことを学習するまでは
暫定的に「オブジェクト」も「生データの一種(片われ)」として扱ってもよいと思います。

そのほうが「オブジェクトブラウザ」「ヘルプ」「ウォッチウィンドウ」なども理解しやすいからです。

逆に言うと、「オブジェクト」を「あえて」「生データの一種(片われ)」と考えない場合は、
「相当、VBAの全体像の理解が難しくなる。特に1度もプログラミング経験のない、文系人間にとっては。」
ということも意識しておいてください。
もちろん、ご自分なりに「自分ならこう考えるしこっちのほうが分かりやすい」というものがあれば、
それにしたがってください。

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

では次に、もう少し表の見方についてご説明させていただきます。

例えば、以下のように見てみてください。

(01)やりたいこと別(目的別)に、何を使うのか?を知りたいとき。その1

「やりたいこと・利用シーン」の列の「一般データ操作」や「オブジェクト操作」のなかに、
ご自分のやりたいことがもしあれば、その右側をみると、何を使うのかがわかります。
結果、そのことについて学習すればいい、と分かります。

例えば、「・単純に計算(四則演算等々)」をしたい場合、
 ↓
その右の『 学習項目01「生データ」 』の列を見ると、
『 一般データ(=各種リテラル値)・文字列・日付・論理値(ブール値=TrueとFalseの2値)・数値などの「文字系」のデータ。言わば「2D」なデータ。』
とあり、
 ↓
さらにその右の『 学習項目02「変数」 』の列を見てみると、
『 一般変数 (「配列」も含む。・文字列型・日付型・ブール型・数値型(整数型、長整数型、単精度浮動小数点型、倍精度浮動小数点型、通貨型、10進型、etcなどなど) 』
とあるので、
 ↓
「よくわからないけど、それらを使うのか。それらの学習が必要だな。」とか、
「+-×÷の四則演算だから、もしかして数値型(整数型、長整数型、単精度浮動小数点型、など)ってのだけを使うんかな??よくわからんけど。」
などとわかります。

そして同時に、
「”オブジェクト ”ってヤツのは右側(同じ段)のどの列にも無いから不要だな。」
とも分かります。

そしてさらに右の『 学習項目03「命令01(組込タイプ)」=「キーワード」』を見ると、
 ↓
『 ステートメント名、演算子、VBA関数多分9割以上、WorksheetFunctionオブジェクトの関数、データの型の名前、・・・』
などと書いてあります。
 ↓
なので、
「よくわからないけど、その列の一番上には『 学習項目03「命令01(組込タイプ)」=「キーワード」』って書いてあるんだから、
 そういった”命令 ”も使うんだな。ならそれらの学習が必要だ。」、
とわかります。

そしてこれも、同時に、
「右側(同じ段)見渡したときに、よく見るとプロパティとかメソッドとかいうものは無いから、それらも不要なんだな」とも、
わかります。

そんな感じで見てみてください。

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

(02)やりたいこと別(目的別)に、何を使うのか?を知りたいとき。その2「逆から」

「学習項目01」の「生データ」(=リテラル値)のうち、数値や文字列ってどういうことに使うの?とか、
「学習項目02」の「変数」のうち、「一般変数」ってどういうことに使うの?とか、
そういうことを疑問に思ったときに、その一番左を見ると、
「やりたいこと・利用シーン」を見れば・・・、

・開始日付と終了日付による期間日数の割り出し。
・日付データからの生年月日や締め日、年度末、月度、年度、などの算出。
・置換(変数内の。ある文字列内の、特定の短い文字列や単語などの。)。
・検索(変数内の。ある文字列内の、特定の短い文字列や単語などの。)。
・テキストファイルやCSVファイル処理の操作(読み書きその他。)。
・フォルダ内の全てのサブフォルダのファイルのフルパスの取得。
・フルパスからのファイル名のみやパスのみの切り出し。
・文字列の結合、分離、切り出し、など。
・True/Falseの判断。

・・・などと書いてあるので、「ああ、そういうことに使うわけか」と分かります。

また、
「学習項目03」の「命令01(組込タイプ)」の列のうち、例えば「VBA関数」ってどういうことに使うの?
と、そういうことを疑問に思ったときに、その一番左を見ると、
「やりたいこと・利用シーン」を見れば・・・、
同様に、上記の目的が書いてありますから、「ああ、そういうことに使うわけか」と分かります。

同時に、
「学習項目01」の列は「一般データ」になってますし
「学習項目02」の列は「一般変数」になってますから、
そこから、
「ああ、03の列の VBA関数 ってのは、一般データや 一般変数 と使うケースが
   ほとんど100%に近いんだな」
とか、
「WorksheetFunctionオブジェクトの関数 ってやヤツも同じなんだな」、
とわかります。

また、
「学習項目01」の「生データ(一般データやオブジェクト)」は料理に例えると、
  「素材。お肉・お魚野菜お米パン穀物くだもの」と同じようなものか、とか、

「学習項目02」の「変数(一般変数やオブジェクト変数)」は、
  「素材を仮置き、下ごしらえ置きするための小皿、ボウルなど」みたいなもんか、とか、

「学習項目03」の「ステートメント名や関数、プロパティ、メソッド」といった「命令」たちは、
  「包丁、まな板、ナベ、菜ばし、おたま、フライパン、電子レンジ、オーブン」みたいなもんか、
とか、
そういったことも分かります。

同じように03の列の「プロパティ」とか「メソッド」って、どういうときに使うの?と疑問に思った際は
一番左を見ると・・・、

・フォルダ内の全てのサブフォルダの各種ファイルの一括操作。
・単一セルの操作や、セル範囲の操作。
・ウィンドウの操作。・グラフの操作。
・ピボットの操作。
・名前定義の操作。
・フィルタの操作。
・並べ替え機能の操作。
・「Excel上での操作としての」、検索や置換、その他。
・Microsoft Query(簡易SQL)の操作。
・数式の操作
・色や罫線、各種書式設定の操作。
・オートシェイプ(図形)や、画像(図、写真等々)の操作。
・印刷レイアウトの操作。
・印刷設定の操作や印刷実行や連続印刷。

などと書いてありますから、「ああ、そういったことに使うのか」と分かります。

同時に、01の列と02の列を見ると、それぞれ、
「オブジェクト=オブジェクト式」とか、「オブジェクト変数」とかも書いてありますので、
「ああ、03の列の プロパティ とか メソッド って、
  オブジェクト式やオブジェクト変数も一緒に使うんだな・・・
といったことも分かります。

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

(03) 『「返す」という仕組みを持つ・持たない 』の列について

VBAでは01の「生データ」のことを「値」と呼びます。
一般データ、オブジェクト、両方を含めて「値」と呼びます。

「返す」という動きはVBAの命令たちが、その
「一般データかオブジェクトかのいずれか」を、
ユーザー側に「答え」「結果」として「投げ返す」、「投げ返してくれる」、
という意味です。
VBAの命令たちにとっては、すごく重要な動きなので、
ここは常に注目していないといけません。

どんな命令を使うにも、まず、ヘルプで、
「そもそも値が返るのかどうか?」と、
「もし値が返るとするなら、どんな値が返るのか?一般データか?それともオブジェクトか?」
「もし一般データが返るなら、どんな型か?特に数字は文字列なのか数値なのか?それともバリアント型か?など」
「もしオブジェクトが返るなら、どんな型か?WorkbookかWorkbooksか?それともObjectかバリアントか?など」
を必ず最初に確認しなければなりません。

でないと、その命令をどのように使うか、どのように書くか?も変わってくるためです。
エラーをどう解決するか?にも大きく関係してきます。
返ってくる値の型によって、エラーの解決方法も変わってくるので。
そのあたりは、中級くらいになると、非常によく使う+実感するようになります。

逆に言うと、初級ではそこまでは要求されない、ということでもありますので、
今の時点では、「ふーん」でもいいので、あまり心配しすぎないでください。

ただ、とはいっても、
「やらなくてもいい」は「ありえない」ので、
「いつかやらないと、いつまでたってもバカのままになる」ということだけは覚えておいてください。

その意味で、この『「返す」という仕組みを持つ・持たない 』の列は
重要なので、いつも、意識してください。

「一般データか、オブジェクトか、何が返ってくるんだ?」とか、
「どんな型が返ってくるんだ?」と。

今のVBA教育業界では、「そこまでやれ・自分でヘルプで調べろ」と教えてくれるところはまずありません。
なので、永遠に初心者のまま、自力でエラー解決もできない状況に追い込まれます。

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

(04)『 戻り値(返り値) 』の列について

前項でお話したとおりです。

「一般データか、オブジェクトか、何が返ってくるんだ?」ということなどのヒントにお使いください。

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

(05)『 「式」か「式じゃないモノ」か?式を作れるか作れないか?(「ステートメント」内において) 』の列について

本表は、

「やりたいこと・処理・目的」目線の学習項目の一覧表です・・・、
市販書籍によくある、「逆引き辞典」的なイメージかもしれません・・・・、

と書きました。

「変数」目線、
「プロシージャ」目線、
での学習項目です。

VBAの学習項目は、そのように捉えることが一つの方法ですが、

もうひとつ、

「ステートメント」目線
「式」目線
「式じゃないもの」目線

で捉えることも重要です。

そもそも、VBAの「ステートメント」は「式」と「式じゃないもの」でできている・成り立っているからです。

この捉え方をする市販書籍は皆無です。

でもヘルプにはあたりまえのように書いてあります。

Webページは1つだけ見たことがあります。(なので自分も少しほっとしているのですが)

なので、これも
「意識すればVBAが短期に上達する可能性がある」し、
「意識せねば、いつまでたっても、お金を払って習っていても、VBA的にはバカのまま」
ということになってしまいます。
(言葉が悪くてすみません。)

この列は、その目線でとらえるとどうなるか?について少し触れたものです。

で、さらに、その目線でVBAの学習項目を捉えた表が以下です。
https://euc-access-excel-db.com/00000WPPDF/statem-elem-new01.pdf

今後、こちらの一覧表のこともお話しますので、一応、こちらも見てみてください。

これもCtrlキーを押しながら、マウスのホイールを前に回すと拡大しますし、
右クリックでの「名前を受けて保存」や「Ctrl+S」にてダウンロードできるので、
コンビニでA3用紙に印刷して、見てみてください。

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

以上で、本一覧表のおおむねの使い方の説明を終わります。
また何か思い出したら、バックナンバーやメルマガに追記していきます。

よろしくお願いいたします。

今回は以上です。

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

バックナンバー目次とサンプル号

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

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