投稿/コメントを表示します。

達人養成塾 小川先生

サポート会員の富田です。お世話になります。

先日ご指導いただいたマクロの件の件、
アドバイスをもとに添付の通りに書換えてみました。

「該当する条件がそもそも存在しない」という
条件を設定したいときには、
「Is Nothing」を使えばよいということが、
少しは理解できたつもりです。
(「Is Nothing」と「=""」の本質的な違いも含めて)

添付のマクロについて、
コメント・アドバイス等が頂けるのであれば、
明日(12/28)の「自主練会」に出席しますので、
その席ででもご指導いただきたくお願いいたします。

上記の件に加えて、以下の件について質問したく存じます。

このマクロで配列が使われていたことをきっかけにして、
「発展編2」を受講したところ、
このマクロでの配列の使われ方が、
「発展編2」での配列の説明と一致しないように見受けられましたので、
以下その点につきましてお問い合わせしたく存じます。

「発展編2」での配列(連想配列は除く)のことを、自分なりに整理すると、

a.静的配列…変数宣言時にサイズの定義も同時に行う(サイズを固定する)。

 a1.静的一次元配列(変数は一次元的空間に存在)
 a2.静的多次元配列(変数は多次元的な空間に存在)

b.動的配列…変数宣言時に変数のサイズの設定しない(サイズを固定しない)。
ただし「Redim Preserve」と「n=n+1的なカウントアップ」で
      マクロの実行中に適宜変数のサイズを再定義してゆく。

 b1.動的一次元配列
 b2.動的多次元配列

になるかと存じます。

しかるにこのマクロで使われている配列変数は、
変数のサイズが宣言時に定義されていない点では動的配列のようであり、
反面、実行時にサイズの再定義をしていない点で静的配列のようにもみえます。

このマクロで使われている配列変数が、
そのサイズについて全く定義していないのに問題なく動作している
理由が気になります。
(変数のサイズの定義が必要な場合とそうでない場合とがあるのか?
 そしてどのような場合に定義が不要となるのか?)

このことにつきましても自主練会の席上で質問したく存じます。
当日はよろしくお願いいたします。

On 2014/12/24 22:45, エクセルマクロ24時間道場 wrote:> 匿名 さん:
>
> エラー処理で対処するほどの件ではないです。
>
> sp = ... の前のところで、以下の条件分岐がよいです。
>
> If oH1 Is Nothing Then
>
> Else
>
> End If
>
> エラー処理を入れるにしても、その直前で on error resume next を入れ、想定されるエラー処理が終わったところで速やかに on error goto 0 を入れます。
> でないと、本来自分がスルーするつもりのなかったエラーまでスルーされてしまうので危険です。
>
>
>
>> 達人養成塾 小川先生
>>
>> サポート会員の富田です。お世話になっております。
>>
>> 先日作成して先生に添削していただいたマクロの件、
>> ワークシート上に記載されているISBNコードのついた書籍の情報が、
>> アマゾンのサイトに掲載されていない状況にも対応できるように、
>> 修正を施してみました(このメールに添付しています)。
>>
>> 添付のとおり、
>> On Error Resume Next を使う、かなり荒っぽい方法なので、
>> もう少し上品というかスマートな方法を考えてみたいと思います。
>>
>> 28日に参加予定の「自主練会」当日の課題には、
>> 上記の解決策の検討か、
>> 現在受講中の「発展編2」DVD講座の演習問題に取り組むか、
>> どちらかを選択するつもりでおります。
>>
>> 今後ともよろしくお願い申し上げます。
>
>
> エクセルマクロ24時間道場
> https://online.pc5bai.com
>
>
>
2014/12/28 02:34