|
こんばんは。
こちらの過去ログなどを参照しながら、
下のようなマクロを作ったのですが
非表示のファイルを閉じるところで行き詰まってしまいました。
よい方法がありましたらお教えください。
(私のできる範囲でやってみたのでマクロ自体の作りがかなり悪いと思いますが・・・)
マクロファイルとは別のデータファイル(TEST.CSV、シートは1つ(T1))があり、
データファイル内の余計な列を全て削除したのちに
集計して、それをマクロファイルのシート(T2)に貼り付けて
データファイルは保存しないで閉じるという処理です。
Sub 集計TEST()
Dim vnt, a
Dim i As Long
Dim dic As Object
Workbooks.Open "E:\TEST.csv"
With Sheets("T1")
Range("A:C,E:R,T:Z").Select
Range("T1").Activate
Selection.Delete Shift:=xlToLeft
Range("A1").Select
vnt = .Range("B2", .Range("A65536").End(xlUp)).Value
End With
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(vnt, 1)
If Not dic.exists(vnt(i, 1)) Then
ReDim a(1)
a(0) = vnt(i, 1)
Else
a = dic(vnt(i, 1))
End If
a(1) = a(1) + vnt(i, 2)
dic(vnt(i, 1)) = a
Next i
Sheets.Add
With Sheets("Sheet1")
.Cells.ClearContents
.Range("A1").Resize(, 2).Value = Array("コード", "金額")
.Range("A2").Resize(dic.Count, 2).Value = Application _
.Transpose(Application.Transpose(dic.items))
.Select
.Range("A1:B1").CurrentRegion.Copy
ActiveWindow.Visible = False
End With
With ActiveWorkbook.Sheets("T2").Paste
End With
'------------------------------
ActiveWindow.Visible = True
ActiveWorkbook.Close
'------------------------------ここで非表示ファイルを終了する方法がわかりません。
Erase vnt
Set dic = Nothing
End Sub
みなさま、よろしくお願いします。
|
|