|
固定長テキストファイルをエクセルで開くマクロを作成しています。
目的は、すでに開いているエクセルファイに対して、マクロ実行により新規に開かれるエクセルファイルのデータの必要箇所をコピーして張り付けることです。ここで、すでに開いていたものとマクロにより開かれたもので、2つのエクセルブックが表示される状態なのですが、マクロにより開いたファイルを閉じた後もオブジェクトが開放されていないようなのです。
参照したファイル(テキストファイル)を削除しようとすると
”FILEを削除できません。ほかの人またはプログラムによって使用されています。ファイルを使用している可能性があるプログラムをすべて閉じてから、やり直してください。”
というメッセージが表示されます。
最初から開いていたエクセルまで閉じるとファイルの削除ができるのですが、
どのオブジェクトが開放されていないかわかりません。
以下にマクロを記述します。どなたか対応策をお教えください。
Sub Excel変換()
Dim Ebook As Excel.Application
Dim OpenFileName As Variant
'出力ファイルの選択
OpenFileName = Application.GetOpenFilename("テキストファイル,*.txt")
If OpenFileName <> False Then
'オブジェクト変数にオブジェクトの参照を代入
Set Ebook = New Excel.Application
'ファイルのExcel展開
Ebook.Workbooks.OpenText Filename:=OpenFileName _
, DataType:=xlFixedWidth _
, FieldInfo:=Array(Array(0, 1) _
, Array(9, 1) _
, Array(16, 1) _
, Array(22, 1) _
, Array(29, 1) _
, Array(37, 1) _
, Array(45, 1) _
, Array(53, 1) _
, Array(61, 1) _
, Array(68, 1)) _
, TrailingMinusNumbers:=True
'Excel表示
Ebook.Visible = True
'オブジェクトの開放
Set Ebook = Nothing
End If
End Sub
|
|