Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8232 / 76736 ←次へ | 前へ→

【74081】Re:excel結合時レコードがdeleteされないようにするには
発言  kanabun  - 13/4/17(水) 9:52 -

引用なし
パスワード
   あと、もう1点
プロシージャの最後で

>  Set cBook = Nothing

しておられますが、
つけるなら、For〜Nextのなかで、iが変わるごとに Set cBookしている
ので、それの「使用が終了した」とき、つまり
> cBook.Close False
のあとが正しい位置です。

>    For i = 1 To UBound(Files)
>      Set cBook = Workbooks.Open(Files(i))
>      With pBook.Worksheets(1) 'コピー先シート最終セル
>        Set rCopyTo = .Cells(.Rows.Count, 1).End(xlUp)
>      End With
>      m = IIf(i = 1, 0, 1) 'iが1のとき Offsetは無し
>      cBook.ActiveSheet.UsedRange.Offset(m).Copy _
>       rCopyTo.Offset(m)
>      cBook.Close False
       Set cBook = Nothing 'cBookの使用を終了したことを知らせる
>    Next i

ただし、そう書かなくても、i = 2 のとき Set cBook = のところで
これまでの cBookを破棄して あらたに cBookに別のWorkbookを割り当てる
のをVBAが裏で自動でやっていてくれますから、通常は

>     Set cBook = Nothing 'cBookの使用を終了したことを知らせる

は書きません。
pBook についても、プロシージャを終了するときに 自動で破棄されます
から、真面目につけなくてもいいのですが(^^)...
まあ、強いてつけるとしたら、

>  pBook.Close True

の直後、  

>  MsgBox "終了しました。"

の直前でしょうか?


0 hits

【74075】excel結合時レコードがdeleteされないようにするには にしもり 13/4/16(火) 12:26 質問
【74076】Re:excel結合時レコードがdeleteされないよ... kanabun 13/4/16(火) 13:01 発言
【74077】Re:excel結合時レコードがdeleteされないよ... kanabun 13/4/16(火) 13:06 発言
【74079】Re:excel結合時レコードがdeleteされないよ... にしもり 13/4/16(火) 17:51 お礼
【74080】Re:excel結合時レコードがdeleteされないよ... kanabun 13/4/17(水) 9:38 発言
【74081】Re:excel結合時レコードがdeleteされないよ... kanabun 13/4/17(水) 9:52 発言
【74082】Re:excel結合時レコードがdeleteされないよ... にしもり 13/4/17(水) 10:42 お礼

8232 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free