[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ネットワーク他のパソコンのファイルを開く』(まき)
今ネットワーク上に有るPCの保存フォルダーを開くマクロを作っており、記事番号
[[20050928163654]]を参考に下記の通り作成致しました。
Private Sub CommandButton4_Click()
Set FSO = CreateObject("Scripting.FileSystemObject") Set WShShell = CreateObject("WScript.Shell") FldPat = FSO.GetFolder("\\山田太郎\my documents\○○○○原簿").ShortPath WShShell.Run FldPat, 1, False Set FSO = Nothing Set WShShell = Nothing End Sub
としたところ、”WShShell.Run FldPat, 1, False”が黄色になり前に進みません。
そこでネットワークフォルダーの、”FldPat”にマウスを合わせた所、
”FldPat="\\?QOP\my documents\○○~1"
となっていました。ネットワークPCの名前が漢字である事がいけないのでしょうか?
但し、他のコマンドで同フォルダーにある特定ファイルは開けます。
申し訳ございませんが、不具合点が分かりましたら、ご指導お願い致します。
以上よろしくお願い致します。
回答のレベルではありません。 野次馬根性だけで、お尋ねします。(全く知識はありません)m(__)m
なぜ、ShortPathを取得するのでしょうか? 単純に↓では、お話にならない「話」ですか?
Private Sub CommandButton4_Click() Set WShShell = CreateObject("WScript.Shell") FldPat = "\\山田太郎\my documents\○○○○原簿" WShShell.Run FldPat, 1, False Set WShShell = Nothing End Sub
(半平太)
半平太 様
こんにちは、まきです。 ご連絡頂きました通り書き直した所、”WShShell.Run FldPat, 1, False”で次の通り実行エラーとなりました。 (HELPで調べたけれども、全然意味が分かりませんでした。また、”FldPat”にマウスを合わせた所、 ちゃんと指定したネットワークフォルダー名が出ています。)
'-2147024843(80070035)'):'RUN'メソッドは失敗しました。'IWshSell3'オブジェクト
正直何がなんだか全然分かりません。ちなみに下記の記述だと、自分のフォルダー部は開く事が出来ます。(他のwebで見かけた物)
Dim vntFileName As Variant vntFileName = _ Application.GetOpenFilename( _ FileFilter:="エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" _ , FilterIndex:=1 _ , Title:="開けゴマ" _ , MultiSelect:=False _ )
以上よろしくお願い致します。
他人事だと思っていたらリンク先って、自分。 これでも良いんじゃないですか? こっちの環境では、こんな感じでも動きます。(つながってれば) BJ
Sub フォルダを開く() Dim OpFldPath As String, WshShell As Object Set WshShell = CreateObject("WScript.Shell")
OpFldPath = "\\ABCD_Sv\d\myfolda"
'WshShell.Run OpFldPath, 3, False '全画面で開く 'WshShell.Run OpFldPath, 2, False '開いて縮小 WshShell.Run OpFldPath, 1, False '普通に開く 'Trueにするとエラー Set WshShell = Nothing End Sub
ShortPathは、パスが長くなった時の \\ABCD\D\xxx~xxx を取得するため。
追伸17:30 >ネットワークPCの名前が漢字である事がいけないのでしょうか? の可能性が無いともいえません。 漢字にしたことがないので。
更に追加、 >\\山田太郎\my documents\○○○○原簿 ドライブ名は?
開く前に、カレントディレクトリを移動させては、どうでしょうか。
WshShell.CurrentDirectory = "\\山田太郎"
原因は良く分かってませんし、意味も分からないですが カレントディレクトリは動くもののようです・・・?
ですから、開く前に、強制的に移動させてみたら上手くいくかもしれません。 どうでしょうか・・・。ダメもとでお試しください。
(makirin)
まきです。
次の通り記述しました。
Private Sub CommandButton4_Click() Dim OpFldPath As String, WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.CurrentDirectory = "\\山田太郎" OpFldPath = "\\\山田太郎\my documents\○○○○原簿" 'WshShell.Run OpFldPath, 3, False '全画面で開く 'WshShell.Run OpFldPath, 2, False '開いて縮小 WshShell.Run OpFldPath, 1, False '普通に開く 'Trueにするとエラー Set WshShell = Nothing End Sub
すると、 '-2147024773(8007007b)':'CurrentDirectory'メソッドは失敗しました。'IWshSell3'オブジェクト
でエラーになりました。-2147024843(80070035)のエラーは、存在しないフォルダを指定するとエラーで
発生と見つけましたので、やはりネットワークパスに問題が有るのでしょうか?でも、直接ファイルを
開くVBAでは、同じフォルダーにあるファイルが開けるので??です。指定したフォルダーを開きたいだ
けなのですが。。。
またドライブはCなのですが、特にC¥を付けなくてもアクセスで同じPCのフォルダー違いは開けま
すので、何か有るのだと思うのですが。。。
以上よろしくお願い致します。
まきです。
私も冒頭で申し上げましたが、漢字名とエクセルVBAの関係が良くないのでしょうか?
先ほども申し上げましたが、既にアクセスでも同PCをサーバー代わりに使っており、
PC名の変更が出来ません。明日に他のPCを使い(英文名なので)、確認を取ってみま
す。
以上よろしくお願い致します。
開きたいファイルのディレクトリへ、も移動できないのかどうか 試してみては?ダメかもしれませんが、何かの手がかりになるかも?
WshShell.CurrentDirectory = "\\山田太郎\my documents"
こんな事ぐらいしか言えなくてスイマセン。 (makirin)
>またドライブはCなのですが、特にC¥を付けなくてもアクセスで同じPCのフォルダー違いは開けま・・。 アクセスのことは知りません。 きちっとしたパスで試してください。 BJ
今朝から色々検証を行ってみました。昨日までXP HOME → XP HOME(PC日本語名)でしたので、
XP Pro → XP HOME(PC英文名)で行ってみましたが、昨日同様のエラーが生じました。
Workbooks.Open Filename:="\\山田太郎\my documents\○○○○原簿\○○.xls"だとどのPCからも開ける
ので、フォルダーを開くのに何か悪さをしているのでしょう??みなさんにも色々ご指導頂いて解決に至
りませんでしたので(私の技量不足)、エクスプローラーで開ける様に下記の通り書き直しました。
Shell "Explorer.exe \\山田太郎\my documents\○○○○原簿", 1
ActiveWindow.Close
上記の方法でも結果的には同じ事なので、納得は出来ないのですけど、本記述で運用する様に致します。
BJ様、makirin様、半平太様、 有り難うございました。
原因がわかりません。 こっちの環境では、 こんな感じでも動きました。 ネットウォークの事は良く解りません。 すみませんでした。
Sub testaaa() Set WShShell = CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") 'FldPat = FSO.GetFolder("\\山田太郎\my documents\○○○○原簿").ShortPath FldPat = FSO.GetFolder("\\kikiki\shash\testaaaaaaaaa\testbbbbb").ShortPath WShShell.Run FldPat, 1, False Set WShShell = Nothing Set FSO = Nothing End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.