|
▼Hirofumi さん、ありがとうございます。回答内容のとおり変更し、試行してみたら、うまくいきました。更に、集計表シートへ5月1日〜31日分ということで、各日にちのデータに全支店分のデータを仮入力したものを試行してみましたところ、問題なく処理されました。長い道のりでしたが、本当にありがとうございました。
それで、私もHirohumiさんのコードを元に、更に勉強していこうと思っているのですが、どうしても分からない内容があります。最後に、以下のものだけ、ご教授いただければと思います。私の場合、「インデックス」のところが良く理解できていないと思うので、以下の質問も、それが解決しないと理解できないのかなっと思います。流れだけは、つかめるのですが、分からないコードが多すぎて、一つ一つ勉強して理解できるようにします。ので、宜しくお願いいたします。
1.Private Function MakeSheetsIndeの以下の内容についてですが、全てのシートのなかで、除外したシートがある場合は、Forループを終了するというところまでは、分かるのですが、「除外フラグ」というのが、いまいち理解できません。
For i = 1 To .Count
'除外フラグをFalseに
blnExclude = False '★この行追加
'除外するシート名の先頭〜最終まで繰り返し
For j = 0 To UBound(vntExclude) '★この行追加
'もしi番目のシート名が除外するシート名と一致するなら
If .Item(i).Name = vntExclude(j) Then '★この行追加
''除外フラグをTrueの
blnExclude = True '★この行追加
'Forを抜ける
Exit For '★この行追加
End If '★この行追加
Next j '★この行追加
また、シートのindexに、シートiのセルE1と同一の日付がある場合、メッセージが出るような内容だと思いますが、これは例えば、どういう場合に、このようなメッセージが出るのか分からないので、申し訳ありませんが、またご教授願います。
'シートのIndexにこの日付が有る場合
If dicSheets.Exists(vntDate) Then
Beep
MsgBox "同一の日付が有ります"
Exit Function
2.これは、Functionプロシージャでシートインデックスが作られなかったら、と言いますか、シートインデックスがない場合は、ExitHandler:へ飛び、マクロを終了する、いう理解でよろしいのでしょうか?
'シートのIndexを作成
If Not MakeSheetsIndex(dicSheets, lngSheetNo) Then
GoTo ExitHandler
End If
|
|