★独学者が1年後にExcelVBAを爆発的に伸ばすための最低限の基礎知識メモ(ダイジェスト):Vol0032:ついでに、ウォッチウィンドウの「一般的に、普通に使う使い方」も少し-15。(エラー回避の基礎16)★ ウォッチウィンドウで「ActiveSheet.UsedRange」のセル範囲やオブジェクト変数「rrr」のセル範囲、マウスで選択したセル範囲を調べる方法と、それによって「何がわかるか?」「わかること」~その4。
  
バックナンバー目次ページは→こちらです。

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

Vol.0032

タイトル:ついでに、ウォッチウィンドウの「一般的に、普通に使う使い方」も少し-15。(エラー回避の基礎16)

★ ウォッチウィンドウで「ActiveSheet.UsedRange」のセル範囲やオブジェクト変数「rrr」のセル範囲、マウスで選択したセル範囲を調べる方法と、それによって「何がわかるか?」「わかること」。~その4。
  
  

バックナンバー目次とサンプル号
https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01

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

今回も前回の続きです。

https://euc-access-excel-db.com/tips/ct07_se/ct075012_xls2k_vba_tips/mag2-01-26
における、

の図の状態にしておいてください。

「Let ggg = ActiveSheet.UsedRange」と、
「Set rrr = ActiveSheet.UsedRange」の2行が

追記された状態となります。
  
  

もちろん、

「Sheet1」には、AとBの列に、

下図のようにセルに値が入っているようにしておいてください。

  
  

そうしましたら、まずは、シートの方で、値の入力された範囲をドラッグ選択します。(下図)

  

できましたら、ウォッチウィンドウに行き、先ほどまで使っていた、「ActiveSheet.UsedRange」の行を消します。
(「ggg」と「rrr」は残します。)
  

そのあと、以下の7つの「式」を新たにウォッチウィンドウに追加してください。

やりかたは・・・・
  

ActiveSheet.Range.Selection
ActiveSheet.Selection
ActiveWindow.Selection
ActiveWorkbook.Selection
Application.ActiveWindow.Selection
Application.Selection
Selection
  

↑まず、この7つの式をまずはイミディエイトに丸っとコピペします。

で、行の先頭文字の前の白い部分(少し狭いですが。例えば「ActiveSheet」の「A」よりも前の部分)をクリックすると、
1行分がすべて選択されますので、そうなった状態のまま、
その行をウォッチウィンドウにドラッグします。

7つ全部やり終わると、下図のようになります。

(↑まだプログラムを実行してないので、「ggg」と「rrr」は<対象範囲外>になっています。
  プログラムが実行されて、「Stop」で一旦停止すれば、これは消えます。)

  
  

ちなみにですが、上図の通り、ウォッチウィンドウでは、エラーの内容も表示されます。

『 <対象範囲外> 』と表示されたところは、「プログラムをF8押下で進めていけば、いずれは「何らかの値と型が確定する=評価が完了する」、という箇所です。

が、エラーメッセージが表示された箇所は、F8キーを進めてもエラーのままです。

そのエラーのままの「式」を、例えば、
・変数に代入しようとしたり、
・引数として使ったり、
などをしてもエラーになってしまいます。

(※引数にも変数にも、「値と型」が確定したモノしか使えませんので。そういう決まりになっていますので、学習し始めのうちは「なぜ?」とは考えないでください。)

  

では、

ここで、F5キーを押してプログラムを実行したいと思います。

実行する前に、
・「End Sub」の前に「Stop」が書いてあるか、
・あるいは、コメントアウトされていないか、
必ず確認してください。

大丈夫でしたら、プログラムをF5キーを押します。

「Stop」の行で一旦停止されます。

変数の「ggg」と「rrr」にも値が代入され、以下の図のようになります。
  

  

すると、
「ggg」と「rrr」にも値が代入され、『 <対象範囲外> 』という表示が消えたかと思います。

  
  

ではここから、前回に、以下のように書きましたので、そのことをウォッチウィンドウで確認してみましょう。
  

『 また、「Selection」プロパティには
「Application.Selection」プロパティと
「Window.Selection」プロパティの
2つしかないため、
つまり、親に位置するオブジェクトは
「Application」(つまりExcelのこと)か、
「Window」(アクティブなウィンドウや指定したウィンドウ)などにしかなりえません。

つまり、「WorksheetやWorkbook」などは、Selectionの親の位置には書けない決まりになっています。
なので、
「Activesheet.Selection」とか「ActiveWorkbook.Selection」などと書くと、エラーになります 』

  

まずは、

『 「WorksheetやWorkbook」などは、Selectionの親の位置には ”書けない ”決まりになっています。』
『 「Activesheet.Selection」とか「ActiveWorkbook.Selection」などと書くと、エラーになります。 』

などのことを確認しようと思います。
  

では、ウォッチウィンドウを見てください。

ここではエラーの箇所が3つ、そして、エラーの内容・文言としましては、2つのパターンがありますね。

<引数の数が一致していません。または不正なプロパティを指定しています。>
と、
<オブジェクトは、このプロパティまたはメソッドをサポートしていません。>

の2つです。

  

で、そのエラーの出ている行の「式」の列を見てみると、

ActiveSheet.Range.Selection
ActiveSheet.Selection
ActiveWorkbook.Selection

となっています。

そして「型」の列を見ると、
「Variant/Integer」となっていて、
「Variant/Object」でも
「Variant/Range」でも
ありません。

明らかに「おかしい」です。

  

シート上で選択したのは「セル範囲」ですから、それは「オブジェクトのひとつ」といえます。

よって、そうである場合、ウォッチウィンドウの式の先頭には、
「+」マークが付いていて、
「型」も、
「Variant/Object」とか、
「Variant/Object/Range」とか、あるいは、
「Variant/Range」
などとなっていないといけません。

「Integer(整数。桁数が少ない。)」であるはずがありません。

  

さらに、

「ActiveSheet.Range.Selection」という「式まがい」は、
そもそも「ActiveSheet」とは無関係に、
「Range.」が挟まってしまっていること自体が、
「単純にオブジェクト式の体をなしていない」
「単純にオブジェクト式のルールの体をなしていない」
「オブジェクトモデルの階層構造のルールを無視している」
という意味になるので、
これも
「おかしい」
です。

なので、これを例えば、

「Worksheets("シート名").Range.Selection」、

つまり、
「Worksheets("Sheet1").Range.Selection」
とか、
「ActiveWorkbook.Worksheets.Item("Sheet1").Selection」
などに書き換えてみると、
<オブジェクトは、このプロパティまたはメソッドをサポートしていません。>
というエラー内容に変化します。(下図参照)

  

・・・ということは・・・
  

見たまんまでして・・・、

『 「WorksheetやWorkbook」などは、Selectionの親の位置には書けない決まりになっています。
「Activesheet.Selection」とか「ActiveWorkbook.Selection」などと書くと、エラーになります 』

・・・・ということに「ちゃんと」なっていますね。

  

で、その理由は

『 ExcelVBAの中には、
 「Selection」プロパティは、
 「Application.Selection」プロパティと
 「Window.Selection」プロパティの
 2つしかないため、
 つまり、親の位置に来るオブジェクトは
 「Application」(つまりExcelのこと)か、
 「Window」(アクティブなウィンドウや指定したウィンドウ)にしかなりえません。』

ということだからでした。

  

というわけで、
これらの3つの式は、変数に代入したり、直接に引数として使ったりすると、
「エラーになって使えない」、ということが分かりました。

  
  

逆に、エラーが出なかったのは、

ActiveWindow.Selection
Application.ActiveWindow.Selection
Application.Selection
Selection

の4つの式です。

  
  

まず、

ActiveWindow.Selection
Application.ActiveWindow.Selection

は同じ意味です。
  

これまで何度も言ってきました、VBA(特にExcelVBA)の「悪しき慣習」、

「省略」

ってやつの1つですね。
  

本当はこれは(やむをえない事情が無い限りは)、

「Application.Windows.Item("×××").Selection」
(「×××」の部分はウィンドウタイトル名を書きます。大抵はブック名になります。)

と書くべきなんですが、

「ActiveWindow」を使って代用してしまっています。

(※「書くべき」な理由は・・・、でないと思わぬエラーになってしまうためです。特に初心者の方が「Selection」の特性をよく知らずに安易に使うとエラーが多発します。特に2つ以上のブック=複数ブックの同時操作で。)
  

逆に言うと、この2つの式は、

「Application.Windows.Item("×××").Selection」

の「省略形」ということになります。

「ActiveWindow.Selection」のほうは、「Application」も省略してしまっています。

  
  

残りの

Application.Selection
Selection

はこれも同じ意味です。

「Selection」のほうは、これも「悪しき省略」のひとつですね。
  

で、

「Selection」だけを書くと、「Application.Selection」を指定したとみなされます。

「ActiveWindow.Selection」と書いたとくに、あえてその「ActiveWindow」を省略した意図で
「Selection」だけを書いたとしても、「Application.Selection」を指定したとみなされます。

  

理由は、「Application.Selection プロパティ」と「Window.Selection プロパティ」のヘルプを読むと、そう書いてあるからです。
  

「Application.Selection プロパティ」と「Window.Selection プロパティ」のヘルプページの両方ともに、

『 このプロパティは、オブジェクト修飾子を指定せず使用した場合でも、
  Application.Selection と同様の結果になります。 』

と書いてあるからです。
  

ここで、

「オブジェクト修飾子」とは、「ドットよりも前の部分のこと」を指していますので、

つまり、

「オブジェクト修飾子を指定せず使用した場合」とは、

「オブジェクト修飾子を省略して書いた場合」

=「ドットよりも前の部分を省略して書いた場合」

という意味になります。
  

そして、その場合は、

『 Application.Selection と書いた場合と同様の結果になります。 』

と書いてあるわけです。

  

  

で(前号にも書きましたが)、実は、さらにヘルプを読むと・・・・、

例えば「Application.Selection プロパティのほうの」のヘルプを読むと、

『 Application オブジェクトでは、”アクティブ ウィンドウ ” で
  現在選択されているオブジェクトを返します。』

とも書いてあります。

ということは、

結局(「なんのこっちゃ」な感もありますが)、

ActiveWindow.Selection
Application.ActiveWindow.Selection
Application.Selection
Selection

の4つの式は、
  

「Application.Windows.Item("×××").Selection」

のことを言っている・・・、と解釈してもいいのかもしれません。

(※上式の「×××」の部分はウィンドウタイトル名を書きます。大抵はブック名になります。)

  
  

いつも、前置きが長くなって本当にすみませんが、

では、そのような前提で、ウォッチウィンドウを見て、まずは「Selection」について見てみましょう。

  

ウォッチウィンドウを見ると、

ActiveWindow.Selection
Application.ActiveWindow.Selection
Application.Selection
Selection

の、4つの式には全部、先頭に「+」マークが表示されています。
  

これは、

「オブジェクト」として、そして、その「式」として、

「ちゃんと値と型が確定している=評価が確定・完了している」

=「ちゃんと成立している。間違った書き方はしていない。」

という意味でもあります。

まずは、それを確認しておきます。

  

では「Selection」の行を見てみます。

「型」の列を見ると「Object/Range」と書いてあります。
  

これは、今現在のテストでは、
シート上で(=というよりもアクティブウィンドウ上で)、
「セル範囲」を選択しているという理由から、
「Object/Range」と表示されます。

これが、グラフの棒や折れ線などを選択していますと、また違った内容になります。
その場合は「Object/Series」となります。

さらには、

・オートシェイプ(=図形)の矢印を選択していれば「Object/Line」と変わりますし、
・オートシェイプ(=図形)の楕円を選択していれば「Object/Oava」と変わりますし、
・シートに埋め込まれたグラフの外枠を選択していれば「Object/ChartArea」と変わります。

そのように、「選択したモノ」によって、
「型の列の内容が変化する」=「返すオブジェクトの型が変化する」のが、
「Selection」プロパティの特徴です。

  

で、今回のテストでは、
シート上で選択したモノが「セル範囲」なので「Object/Range」になるわけですが、

であれば(=最終的に「Range」と判明したならば)、
以前の号でやったみたいに、
「Value2 プロパティ」や
「Formula系」のプロパティで、
セル範囲を確認できそうですね。

もちろん、イミディエイトウィンドウでも「 ? Selection.Address 」で 確認できますが、
今回はウォッチウィンドウで確認してみます。

  

では、「Value2 プロパティ」を見てみましょう。
  

「Selection」の行の「+」マークを押してツリーを展開します。

で、下の方にスクロールして、「Value2」を探します。

見つかったらその右、「型」の列を見てください。

「Variant/Variant(1 to 4, 1 to 2)」と書かれています。
  

これは前号以前でも何度もやりましたとおり、

「行が4行、列が2列」という意味でしたね。

で、さらに、「Value2」の「+」マーク、その下の階層の「+」マークを全部クリックして、展開してみます。下図のようになります。

では、これを

と見比べてみてください。

  

もう、疑う余地はありませんよね。
  

値の入っているセルの位置、
そしてのそのセルの値の内容。

まったく同じですよね。
  

そして、全て展開した要素と、選択したセル範囲の図とを見比べれば

「Value2 プロパティ」の「Variant/Variant(1 to 4, 1 to 2)」は

同じセル範囲「A1:B4」だと分かります。
  

これで『「Selection」での「ウォッチウィンドウでのセル範囲の確認」』ができました。

  

前号の終わりのほうに書きましたとおり、

『 「セルをドラッグで選択したモノ」
  を
  「Selection オブジェクト」としてゲットし、
  それによって、セル範囲を調べましょう・・・ 』

ということができました。

  
  

ちなみに・・・・ですが・・・・

今号の最初の方で、

『 「Selection」プロパティには
  「Application.Selection」プロパティと
  「Window.Selection」プロパティの
  2つしかない。 』

と書きましたが、

それを「オブジェクトブラウザ」で確認してみましょう。

まず、VBEを開いている状態で、F2キーを押します。

下図のように、オブジェクトブラウザが出てきますので、

上図のように一番上のドロップダウンで「Excel」を選び、
その下に「Selection」と入れ、
望遠鏡のボタンを右クリックしてから、
「完全に一致する単語だけを検索」を押してチェックを入れ、
望遠鏡のボタンを押します。

すると、上図のように、
望遠鏡ボタンのすぐ下の「検索結果」のペインの、
「クラス」の列に、
「Application」と「Window」のみが表れています。
「メンバー」は
「Selection」となっています。

これはどういう意味かというと、

  「Selection」という綴りの命令を(プロパティかメソッドのどちらかに)、
  そのメンバー(一員)といて保持・所有・内包しているオブジェクトは、
  Application と Window 「のみ」です。
  同時に、Workbook や Worksheet や Range などには、「Selection」は
  表示されないので、
  『「Selection」という命令をもともと持っていません。』ということになります。
  また、「クラス」の列に「オブジェクト名」が表示されたら、
  それが「検索した命令単語」の「親」のような位置づけになります。

という意味になります。

基本、オブジェクトブラウザでは、「完全一致」で検索して
出てきた「クラス(ここではオブジェクト名)」にしか、
その「命令単語」は存在しない
のです。

逆に言うと、同じ綴りの命令単語でも、「親が異なるモノ」が
「複数存在することも多い」
ということでもあります。
「そしてその場合は」、
「同じ綴りの命令単語でも」、
「微妙に動きが異なる」

「ということが多い」
です。

なので、同じ綴りの命令だからといって、同じ動作をしないので、
使い方を間違ったりして、エラーになったり、色々と起こります。

よって、数多くの命令単語のうち、
「プロパティ」と「メソッド」という命令単語に限っては、
「親のオブジェクト名も一緒にくっつけて表現しないと」、
検索するものを間違えてしまいます。

そして、検索にヒットした間違ったヘルプページを見て、
「間違ったヘルプページだと気づかずに」、
そのヘルプの内容どおりにプログラムを書いてしまい、
エラーが続出して「わけわからん」となってしまいます。
そうならないようにご注意ください。
それには、
「親のオブジェクト名も一緒にくっつけて表現するクセにする」、
これが間違いが減る「大きなヒント」です。
  

※オブジェクトブラウザの「クラス」の列には
「オブジェクト」「モジュール」「列挙」などがあります。
「オブジェクトだけ」ではありません。
もし市販書籍などに「クラス=オブジェクト」との解説あれば、それはウソです。
実際には、
「クラス>オブジェクト」とか、
「オブジェクトブラウザでのオブジェクト=クラスのなかのひとつ」、
といった感じでしょうか。
なので「ここでのクラスとはオブジェクトのことと思ってください」という
説明なら、おおむね正しいですが、でもこれも誤解を招くので「ビミョー」です。

  

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

  

  
  

では次に、オブジェクト変数の「rrr」の中身もチェックしてみましょう。

「Stop」の直前に書いた、
「Set rrr = ActiveSheet.UsedRange」の「rrr」です。

「rrr」の中身には「Activesheet.UsedRange」が代入されています。

つまり「オブジェクト」が代入されていますので以前の号でもやりましたとおり、「+」マークが先頭に表示されているはずです。
  

・・・ということでウォッチウィンドウを見てみると、確かに「+」マークが付いています。
  

ではこの「+」マークを押して、「Selection」の時と同じように、ツリーを展開してみます。

そして、下の方にスクロールして、「Value2」を探します。

見つかったらその右、「型」の列を見てください。

  

この「rrr」も、「Selection」のときと同じように、

「Variant/Variant(1 to 4, 1 to 2)」と書かれています。

そしてその中のツリーも全部展開します。下図のようになります。


(↑「rrr」の「Value2」。=「 rrr に代入された ActiveSheet.UsedRange 」の「Value2」でもあります。)
  

では「Selection」のときの「Value2」の状態をもう一度見てみましょう。

(↑「Selection」の「Value2」)
  

2つを見比べていかがでしょうか?

そう。

まったく同じですね!

  

ということは、下図のように、
↓「ActiveSheet.UsedRange」と同じセル範囲がドラッグにて選択されていれば、

その状態のときに、

Dim rrr As Variant
Set rrr = Selection

というプログラムを書いても、
  

Dim rrr As Variant
Set rrr = ActiveSheet.UsedRange

というプログラムを書いても、

「中身は同じになる」ということが、

「これで実証された」、

と思います。

  
  

また、「Selection」は、
以下のような書き方とも「等しい」ということを少し前に程述べましたので・・・・、

ActiveWindow.Selection
Application.ActiveWindow.Selection
Application.Selection

  

結果、

Set rrr = ActiveWindow.Selection
Set rrr = Application.ActiveWindow.Selection
Set rrr = Application.Selection

も、

Set rrr = Selection

「同じ意味」

ということになります。

  

まとめますと、今回のテストに限って言えば、

Set rrr = Selection

Set rrr = ActiveSheet.UsedRange

Set rrr = ActiveWindow.Selection
Set rrr = Application.ActiveWindow.Selection
Set rrr = Application.Selection

も、

同じことを実行し(オブジェクト変数への代入をし)
かつ、
「オブジェクト変数の中身も同じ」、ということになります。
  

「rrr」の「Value2」と
以下の式の「Value2」の内容をご自分でもチェックして見てみてください。
(※ついでに「Formula」系のプロパティも。)

ActiveWindow.Selection
Application.ActiveWindow.Selection
Application.Selection

  

で、以上のことから派生して、
(今回のテストでは、ActiveSheet.UsedRangeをシート上でセル選択したので)

Set rrr = Application.Workbooks.Item("ブック名").Worksheets.Item("シート名").UsedRange
Set rrr = Workbooks("ブック名").Worksheets("シート名").UsedRange

Set rrr = Application.Workbooks.Item("ブック名").Selection
Set rrr = Workbooks("ブック名").Selection

なども、それらと、

・「同じ意味・同じ動作(代入操作)」であり、かつ、
・「rrr」に代入されるセル範囲も同じ、

ということになります。

  

これで、前号の終りの方にも書きましたが・・・・、

『 つまり、これまで
  
  Dim rrr As Variant
  Set rrr = ActiveSheet.UsedRange
  
  とやっていたものを・・・、
  
  ActiveSheet.UsedRange と同じセル範囲を、
  事前にドラッグで選択しておけば、
  
  Dim rrr As Variant
  Set rrr = Selection
  (※ Selection の部分は、Application.Selection や ActiveWindow.Selection などでも可)
  
  と書いても、同じものを変数に代入できる、ということになります。
  
  今回は、ついでに、その辺のことも少し見ていければと思います。』

・・・ということができました。

  

  

またもやゴチャゴチャ書きすぎて、かえってわかりづらくなってしまったかもしれませんが、
何かのご参考になればうれしいです。

  

いちおう、今回で、ウォッチウィンドウの「普通の使い方」をテキトーに題材を選んでご紹介しました。

もっといろんなこともチェックできると思いますが、ひとまずここまでにしたいと思います。

  
ポイントが色々とあると思うので、

このウォッチウィンドウの「普通の使い方」がらみのいくつかの号を、何度も読んでみてください。
  

特に初心者の方は、「配列」について学んでなくてもいいので、色々と実行して何かを感じてみてください。

イミディエイトウィンドウやローカルウィンドウも重要ですが、
ウォッチウィンドウもとても重要です。

特に
「ステートメントを構成する」・・・、
つまり「ステートメントの中に書かれる」、
「式」や「評価」、「式じゃないモノ」、
「返る」、「戻り値」、「オブジェクトと一般データの違い」、
などについては、3つのウィンドウの中では一番良く分かります。

また、
そのため「VBAの構造を知るのにも」、
「3つのウィンドウの中ではもっとも重要」なので、
是非、ウォッチウィンドウに何度も触れて、その重要性を理解してほしいと思います。

特に、
「式じゃないモノ」、
「式として ”間違っているモノ ”」、
については、
F8キー実行中にずーっとエラーが表示されるので、
逆に、
「何がダメなのか?」
「どの部分が間違いなのか?」
もわかりやすい+追いやすいです。

エラー解決にもイミディエイトやローカルだけじゃなくて、是非、ウォッチウィンドウも使ってほしいと思います。

  

どこかの号で書きましたが、

イミディエイトウィンドウ、ローカルウィンドウ、ウォッチウィンドウ、
3つとも、
「完全じゃない」ですが、
でも
「それぞれの ”不足 ”を、それぞれが ”補い合って ”」
「エラーの原因やVBAの構造を調べることができる」
ので、
「★ どれが欠けてもいけない!!」
です。

でもその中で、
「変数以外の式についても」、
「その値と型が一覧できるウォッチウィンドウ」は、
重要度が高いです。

正直、
イミディエイトウィンドウ、ローカルウィンドウ、は
皆さんそこそこ使うのですが、
ウォッチウィンドウはあまり使いません。

というか、
「使う意義が分からない人が多い」です。
  

「ウォッチウィンドウを使う意義が分からない。」

それは・・・、

=「式」という単位のことをまったく身に付けていない。意識したことすらない。
=「ステートメント」や「オブジェクト式」などのことを間違って理解している。
=「評価」ということの意味も知らない。
=エラーの原因、本当の理由、などがつかめない。

・・・ということの「裏返し」です。
  

そして、僕のこれまでの実感ですが・・・、

「ステートメント」は
「7割」の「式」と
「3割」の「式じゃないモノ」で
「できている」

・・・・という感じがしますです。
  

ですので、
「ウォッチウィンドウの使用頻度が、VBAの腕の向上にある意味正比例する」
と言っても、恐らく過言ではないと思います。

  
  

どうかぜひ、
ヘルプやオブジェクトブラウザとともに、ウォッチウィンドウもどんどん使って、
「式」
「評価」
「値と型」
「式と式じゃないモノの違い」
「一般データとオブジェクトとの違い」
「正しいオブジェクト式」
「式じゃないモノ」
「式として書き間違えているモノ」
を調べられるようになってください。

  

「初心者の方」や「中級者の下の方」が伸び悩んでしまうのは、
「市販書籍やWeb記事が、ウォッチウィンドウのことを全然教えないから」、
「ひいてはそれが、オブジェクト式やオブジェクトの理解の妨げになっているから」
「ひいてはそれが、ステートメントや式の理解の妨げになっているから」
ということも、
「大きな原因のひとつ」
だと思います。

なので、もし
「自分はイマイチ、オブジェクトやエラー解決のことがよくわからない」
とお悩みの方は、

どうかがんばってウォッチウィンドウもどんどん使って、
「式」
「評価」
「値と型」
「式と式じゃないモノの違い」
「一般データとオブジェクトとの違い」
「正しいオブジェクト式」
「式じゃないモノ」
「式として書き間違っているモノ」
を調べてみてください。

  
  

・・・なんてエラそうにお話をしてしまいましたが・・・

  

でも正直に白状しますと、今回、皆さんにお話しする前までは、僕自身が、

「ウォッチウィンドウの重要性をわかってない」、

そういう人間でした。

もちろん、ウォッチウィンドウを使ったことはありますが、「式」を意識したことがなかったので、ウォッチウィンドウの重要性が分かっていませんでした。

でも今回、皆さんに良く使う事例をお話していたら、
「式」「評価」などの重要性もわかり、
結果、
「ウォッチウィンドウの使用頻度が、VBAの腕の向上にある意味正比例する」
と言っても、恐らく過言ではない・・・・
という結論に達することができました。
  

皆様にお礼を言わせていただきたいと思います。

本当に、ありがとうございました。
  

ウォッチウィンドウの大まかな一般的な使い方は以上にしておきたいと思います。

今後も、どこかで解説を加えていければないと思います。

幾つもの号にまたがってダラダラと、長々とすみませんでした。

  

今回は以上です。
  

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

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

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

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