| 
    
     |  | ▼Kein さん: ご親切な解答を頂き,誠にありがとうございます。
 >で、Setステートメントを用いて何をするかと言うと「生成したオブジェクトの
 >インスタンスを変数に格納」しているのです。つまり、あとあと扱いやすいように
 >変数に入れているだけです。
 「変数という名の架空の箱に仮置きする」という理解から,名前付き仮保管と書きましたが,あやふやな表現のままにしておくと,後々,間違った解釈に繋がる可能性もあるため,「格納」と言う表現をしっかり覚えます。
 
 >すると良いと思います。で、コピー元ブックは実際には
 >>OpenTextによって開いたブックがデータ元
 >なら、当然シートは1枚のみですよね ? テキストファイルをエクセルで開いても
 >複数シートになることは絶対ありません。だから新規ブックにコピーするにしても
 正確な情報でなくて申し訳ありませんでした。実のところ,
 >>Sub MainPgm()
 >>   :
 >> Call test() '下記参照
 Ca11 test1a()
 Ca11 test1b()
 Ca11 test1c()
 >>   :
 >>'この区間に解答いただいたコードを挿入することになります。
 >> MyB.Worksheets(i).Range("A1:A50").Value ・・・
 >>   :
 >> Call test3() 'ここで最終計算を実施。オブジェクトはMainPgm()と異なる。
 >>   :
 >>End Sub
 >>Sub test() 'オブジェクトはMainPgmとは異なる
 >> Call test2() 'これによって"sample.out"が作成されます。
 >> Open "sample.out" For Output Shared As #1
 >> Workbooks.OpenText Filename:="sample.txt", _
 >>   :      '条件付でファイルを開きます
 >>End Sub
 とCallが4回続いています。このため,ループ処理が続くことになるのです。
 
 確かに,ご指摘いただいた通り,やたらといろんなブックを開かせようとしています。
 "base.xls"から2段階に分けてブック作成するのではなく,直接作成する等の努力が必要なことが分かりました。
 もっと勉強して何とか整理してみます。
 ありがとうございました。
 
 |  |