タイトル | : Re: CreateObjectにてShell32を使用してZIPが展開されない。 |
記事No | : 8445 |
投稿日 | : 2008/12/01(Mon) 17:07 |
投稿者 | : 魔界の仮面弁士 |
> sc = CreateObject("Shell.Application") unzip32.dll や #ziplib を使った方が良いんじゃないかな…。 http://dobon.net/vb/dotnet/links/createzipfile.html
> 通常はObjectで問題なく処理出来ているように見えましたので、 細かい事情を端折って言えば、『ByRef』と『ByVal』の違いによる物です。
この場合は、CallByName を使って呼び出してください。 CallByName(destFlder, "CopyHere", vbMethod, items, FOF_NOCONFIRMATION Or FOF_SILENT Or FOF_NOCONFIRMMKDIR) もしくは、 destFlder.CopyHere((items), FOF_NOCONFIRMATION Or FOF_SILENT Or FOF_NOCONFIRMMKDIR) のように、「変数」を括弧で囲んで、「式」として渡すようにしてみてください。
> Shell32.DLLは1MBもあり、配布を避けるために、 最近のバージョンだと 8MB 近くありますけれどね。 http://support.microsoft.com/dllhelp/?dlltype=file&l=55&alpha=shell32.dll&S=1
ただし、Shell32.DLL は配布してはいけませんし、配布する必要もありません。 配布すべきは、参照設定によって自動生成される「Interop.Shell32.dll」の方ですよ。
|