現在、エクスプローラもどきみたいなものを作成していて、
NameSpaceオブジェクトを使用して他アプリ間とのコピー&ペーストをしようとしているのですが、
自分のアプリ側でファイルをコピーしようとすると、
NameSpaceオブジェクトのところで「ファイルが見つかりません。」といわれてしまいます。
フォルダーは問題ないのですが。。。
下記にソースを載せます。
Set oShell = CreateObject("Shell.Application")
Set oExplorer = CreateObject("InternetExplorer.Application")
oExplorer.Navigate2 txtDirPath.Text
oExplorer.Visible = False '表示/非表示の切り替え
Do
DoEvents
Loop Until oExplorer.readystate = 4
Set oSFView = oExplorer.Document
iIndex = lvwTemp.ListItems.Count
For i = 1 To iIndex
If lvwTemp.ListItems(i).Selected Then
strPath = txtDirPath.Text & "\" & lvwTemp.ListItems(i).Text
oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items().Item(), 1
End If
Next i
Set oFItems = oSFView.SelectedItems
i = oFItems.Count
For Each oFVerb In oFItems.Verbs
If oFVerb.Name Like "コピー*" Then
oFVerb.DoIt
Exit For
End If
Next
oExplorer.Quit
Set oFItems = Nothing
Set oSFView = Nothing
Set oShell = Nothing
何か間違っているのか教えてください。
> oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items
だと、ShellFolderViewのFolderItemとは関係ないでしょう。
こうすれば、いいのかな?
oSFView.SelectItem oSFView.Folder.ParseName(lvwTemp.ListItems(i).Text), 1
> For Each oFVerb In oFItems.Verbs
おそらく、エラーでしょう。
> oSFView.SelectItem oShell.NameSpace(CVar(strPath)).Items
だと、ShellFolderViewのFolderItemとは関係ないでしょう。
こうすれば、いいのかな?
oSFView.SelectItem oSFView.Folder.ParseName(lvwTemp.ListItems(i).Text), 1
上記部分を変更したらうまくいきました。
あなごさん、ありがとうございました。