[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『zipファイルを任意のフォルダ内から全て解凍するマクロでバグっています。』(楽)
任意のフォルダ内に複数のzipファイルがあり、それを解凍するマクロを作成中にエラーコード'91 オブジェクト変数またはwithブロック変数がありませんと出ます。
マクロ内容は下記です。
Function GetFolderPath() As String
Dim root_folder_path As String
With Application.FileDialog(msoFileDialogFolderPicker)
If.show = True Then
GetFolderPath = .slectedItems(1)
End If
If GetFolderPath = "" Then
End
End If
End With
End Function
Sub 解凍()
Dim FSO As Objct
Set FSO =CreateObjEct("Scripting.FileSystemObject")
Dim fileObj As Object
Dim shellObj As Object
Dim zipObj As Variant
Dim ret As Long
root_folder_path = GetFolderPath For Each fileObj In FSO.GetFolder(root_folder_path).files
If FSO.GetextensionName(fileObj) = "zip" Then
Set shellObj = CreateObject("Shell.Application")
Set zipObj = shellObj.Namespace(fileObj.Path).Items
Application.SendKey strpass & " {Enter}"
ret = shellObj.Namespace(root_folder_path).CopyHere(zipObj)'ここがエラー
End If
Next fileObj
Set FSO = Nothing
Set shellObj = Nothing
Set fileObj = Nothing
set zipObj = Nothing
If ret > 0 Then End If
End sub
解凍したcsvファイルを元のフォルダ内に入れようとして、失敗しました。
初心者で色々な方のデータを抜粋して変更していますが、
どなたかお分かりになる方がいらっしゃれば幸いです。
宜しくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
まずはコードの1行目(プロシジャより上)にOption Explicitを記述してください。「ツール」−「オプション」で、「自動構文チェック」にもチェックを付けておくこと。これが今後の貴方のための必須条件になります。(これをやらないと、無駄なデバッグを回答者に強いることになり、大変無礼な行為に繋がります)
あと不思議なのは、なんで解凍するだけなのに、SendKey しているのでしょう? 指定している変数は宣言も代入もされていないので、意図がさっぱり判りません。どこのコードを元にしたのかも書いてもらえると、助かります。
(???) 2017/03/30(木) 09:14
Sub test()
Dim FSO As Object
Dim fileObj As Object
Dim shellObj As Object
Dim zipObj As Object
Dim objDest As Object
Dim root_folder_path As Variant
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
root_folder_path = .SelectedItems(1)
Else
Exit Sub
End If
End With
Set FSO = CreateObject("Scripting.FileSystemObject")
Set shellObj = CreateObject("Shell.Application")
Set objDest = shellObj.Namespace(root_folder_path)
For Each fileObj In FSO.GetFolder(root_folder_path).Files
If FSO.GetextensionName(fileObj) = "zip" Then
Set zipObj = shellObj.Namespace(fileObj.Path)
objDest.CopyHere zipObj.Items
End If
Next fileObj
End Sub
(???) 2017/03/30(木) 17:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.