[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ブックを開くマクロが別のPCでは開かない理由』(YE)
windowsXP + Excel2007環境からwindows7 + Excel2010へこのたび移行する事になりました。windowsXP + Excel2007で作成したマクロをwindows7 + Excel2010でも使用したいのですがうまくいきません...。
Book1で入力したリストをコピーし、異なるフォルダにあるBook2を開いてBook2に貼り付けするというマクロを使用しています。windows7 + Excel2010へ移行後、私(マクロ作成者)のPC(windows7 + Excel2010)では何の問題もなく動いたのですが、別の人のPC(同じくwindows7 + Excel2010)では
’実行時エラー 1004’
’D:¥○○¥△△¥××.xlsm'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうかを確認してください。
とエラーが表示されます。他のマクロなら別のPCでも動くのですが、ブックを開くマクロだけが動かないようです。(他のブックを開くマクロも「そのファイルはありません」というエラー(?)が表示されます。)
私のPCではどちらも開くので、ファイルのパスなどは間違いないかと思うのですが、原因はどういった事が考えられるでしょうか?なにか移行でパスに変更があったのでしょうか?
移行前は別のPC(windowsXP + Excel2007)でも動いていたのですが、windows7 + Excel2010ではやはり同様のエラーで動いていませんでした。互換性の問題などでしょうか?
十分な説明ができていないと思いますが、詳しい方、よろしくお願い致します。
>私のPCではどちらも開くので
このコードのなかのパス文字列は【私のPC】のパスだろうね。 なので、他のPCでは動かない可能性はある。
パスは、OSのバージョンによっても構成が異なってくる。 具体的に、どんなパスなの? それがわかれば、動かすPCに適したパス文字列を作るお手伝いはできる。
(ぶらっと)
ぶらっとさん、ありがとうございます。
パスは以下の通りです。
Workbooks.Open Filename:="Z:\やまだ会社\リスト表示管理\データ管理\点検実施済み物件一覧(FAX送信用).xlsm"
ちなみにZは会社内で共有のネットワークの機械です。
よろしくお願いいたします。
(YE)
そのPCにネットワークドライブ(z)が割り当てられていないとか?
(ぶらっと)
PCに関してあまり詳しくないので、申し訳ありません(‘△‘)??
ぶらっとさんのおっしゃる
そのPCにネットワークドライブ(z)が割り当てられていない
というのは、私以外の人のPCではネットワークドライブ(Z)が見られないという意味の事でしょうか?
もしそうであれば、ネットワークドライブ(Z)の中に社内の各書類ファイルが入っているので、
社内の人は全員ネットワークドライブ(Z)を見る(使う)事ができるのですが・・・
(YE)
ネットワークドライブの設定は各PCで行うもの。 サーバーでの設定が全てのPCに反映されるものではない。 指定時の設定でドライブ文字も「Z」以外を指定可能であるし、もっと下の階層のフォルダをネットワークドライブに 割り当てている可能性もある。
さらにはネットワークドライブを使わずともIPアドレスやコンピュータ名の直接指定でもサーバー上のファイルにアクセスすることも可能なので ネットワークドライブの設定そのものを行っていない場合もあり得る。
まずはエラーの出るPCとYE氏のPCのネットワークドライブの設定を比べてみること。 (ねむねむ)
横から失礼します。 Win XPからWin7にOSを変更したのが一番の理由と思います。 Win XP では C:\ Documents and Setting\・・・ というデフォルト フォルダがあったのですが、Win7からはこのデフォルトフォルダが大きく変わり、 その影響でC:\以下のフォルダの全面見直しが必要になります。 http://www.win7.jp/h7k1061.htm
ちなみにWin7ではMkDirで C:\Documentsand settinigstを作成しても認識してくれません。 従って、VBAコーディングはXPと7のどちらでも認識する共用フォルダを作成する事を考慮しないとうまくいかないと思います。 こちらも今、その取扱いで悪戦苦闘中です・・・ (万年太郎)
私も最初はそれを疑いましたけれど、説明によればネットワークフォルダのよう ですし、作成者の方は XP でも Windows 7 でも動いているのですよね?
ちなみにどちらの OS でもデスクトップのフォルダパスを取得するには、 MsgBox CreateObject("WScript.Shell").SpecialFolders("Desktop") の様にして取得したパスを利用すればできますが、今回とは別のお話のようです。 (Mook)
>Win XPからWin7にOSを変更したのが一番の理由と思います。
おそらく、スレ主さんのケースは、これが原因ではなく、あくまで、操作するPCが zドライブを認識していないということなんだろうと思うけどね。
なので、関係はないと思うけど、もともと、ハードコーディングでフォルダパスを指定すると XPであっても、そのパスの構成の中のユーザープロファイルがPCによって異なるので、不具合があったはず。
Win7 だからということではなく、XP であっても、例えば以下のように、パスを動的に取得すべきだね。
Sub Sample() 'WSH With CreateObject("WScript.Shell") MsgBox .SpecialFolders("DeskTop") MsgBox .SpecialFolders("MyDocuments") ' '等々 ' End With '以下はおまけ
With CreateObject("Scripting.FileSystemObject") MsgBox .GetSpecialFolder(0) 'SystemFolder MsgBox .GetSpecialFolder(1) 'WindowsFolder MsgBox .GetSpecialFolder(2) 'TemporaryFolder End With
MsgBox Application.AltStartupPath MsgBox Application.NetworkTemplatesPath MsgBox Application.Path MsgBox Application.StartupPath MsgBox Application.TemplatesPath MsgBox Application.UserLibraryPath MsgBox Application.AltStartupPath MsgBox Application.LibraryPath
End Sub
(ぶらっと)
ぶらっとさん!はじめからズバリ!でした!!
エラーの出るPCと私のPCのネットワークドライブの設定を比べてみたところ、
他のPCにはネットワークドライブの設定が行われておらず、私のPCにのみ設定されていました。
その上、「ネットワークドライブの設定」というものの存在を私、今まで知らず、(Z:〜〜)だけがパスなの
だと思っていた為、パスを設定し直す事で社内全員のPCで検索ファイルが開くようになりました!!
皆様本当にありがとうございました!!(^▽^)
こんなにたくさんの方にお答え頂き感謝の限りです!!ぶらっとさん、コードまで!!
本当にありがとうございます。またどうしてもわからない時にはよろしくお願いいたしま
す。これからもっと勉強に励みたいと思います☆ありがとうございました。
(YE)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.