zipファイルを解凍するプログラム
ダウンロードしたファイルはzip形式になっており、解凍する必要があります。
せっかくなので手動ではなく、自動で(VBAで作成したプログラムを使って)解凍してみることにします。
ここでも解凍後の容量には注意してください。
以下はダウンロードしたファイルを新規フォルダ(エクセルがあるフォルダ内にunzippedを作成)に解凍(展開)するサンプルコードです。
Sub UnZip() 'フォルダ内のZIPファイルを解凍する
'/*変数リスト
Dim sh As Object 'シェルオブジェクト
Dim zip_folder As Variant 'zipフォルダ
Dim unzipped_folder As Variant '展開するフォルダ
Dim filelist(20 * 365) As Variant '解凍するファイルリスト(最大20年×365日)
Dim filename As Variant 'ファイル名
Dim i As Long 'カウンタ用変数
'*/
zip_folder = ThisWorkbook.Path + "\zipped\" 'zipフォルダをセット
unzipped_folder = ThisWorkbook.Path + "\unzipped" '展開するフォルダをセット
If Dir(unzipped_folder, vbDirectory) = "" Then
MkDir unzipped_folder '展開フォルダがなければ新規作成
End If
unzipped_folder = unzipped_folder + "\" '"※\マークのHTMLエスケープ用。特に意味なし。
'zipフォルダ内のファイルを取得
i = 0 'カウンタクリア
filename = Dir(zip_folder + "*.zip") 'ファイル名(1件目)を取得
Do While filename <> ""
filelist(i) = zip_folder + filename 'パス+ファイル名をリストに保存
filename = Dir() 'ファイル名(2件目以降)を取得
i = i + 1
Loop
Set sh = CreateObject("Shell.Application") 'シェルをセット
For Each filename In filelist
If filename = "" Then
Exit For
End If
sh.Namespace(unzipped_folder).copyhere sh.Namespace(filename).items 'ファイルを解凍
Next
End Sub
※解凍にはだいぶ時間がかかると思いますのでご注意ください。ちなみに展開後のサイズは2012年分だけで317MBあります。
実際のところ、VBAでやる必要のない作業ではあるかもしれませんが、VBAでこんなこともできるということを知っていれば、いつか役に立つときが来るかもしれません。