エクセルVBAでネットワーク上のファイルを開けないエラーの解決方法は?

このQ&Aのポイント
  • Excel・VBAのOpenメソッドを使用してネットワーク上のExcelブックを開こうとする際に、実行時エラーが発生しファイルを開くことができません。具体的には、パス名とファイル名が見つからないというエラーメッセージが表示されます。ファイル名および保存場所が正しいか確認し、移動や削除がないか確認してください。
  • また、共有フォルダにパスワードが設定されている場合には、パスワードを設定せずに参照することでファイルを開くことができます。しかし、Openメソッド実行時や実行前に共有フォルダのパスワードを設定する方法はありません。ExcelブックのパスワードはOpenメソッドのオプションに存在するかもしれませんが、共有フォルダに関しては見つけることができませんでした。
  • OSがWin98や95でExcelがバージョン97、ネットワークがTCP/IPを使用している場合にこのエラーが発生する可能性があります。このエラーの原因は、ファイル名や保存場所の設定が正しくないことや、共有フォルダへのアクセス権限がないことが考えられます。解決策としては、ファイル名と保存場所を再確認し、共有フォルダへのアクセス権限を取得する必要があります。具体的な方法については、詳細な情報が必要となりますので、サポートや専門家に相談してください。
回答を見る
  • ベストアンサー

Excel・VBA Openメソッド実行時にファイル名を取得出来ません。

いつもお世話になっております。 ネットワークコンピュータ上(共有フォルダにパスワードを設定済み)の Excelブックに対してWorkbooks.Open パス名 & ファイル名を実行すると 下記の実行時エラーが出てしまい開く事が出来ません。 パスワード無しの参照のみ共有にすれば開く事が出来るのですが Openメソッド実行時、または実行前に共有フォルダのパスワードをセットする 方法は無いでしょうか?自分が知る限りではExcelブックのパスワードの設定 はOpenメソッドのオプションに有るようなのですが共有フォルダに関しては 見つける事が出来ませんでした。 OS:Win98,95 Excel:97 ネットワークはTCP/IPを使用しています。 ご存知の方、どうか宜しくお願いします。 エラー内容  実行時エラー'1004':  'パス名\ファイル名.xls'が見つかりません。ファイル名および  ファイルの保存場所が正しいかどうか確認して下さい。  [ファイル]メニューの最近使用したファイルの一覧からファイルを開こうとしている場合は、  そのファイルの名前が変更されていないこと、移動または削除されていないことを  確認して下さい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#102878
noname#102878
回答No.1

パスワードを要求されないようにするのが一番ですね。 「クライアント同士の共有は行なわない」 「共有フォルダはドメインのユーザー認証で保護されているサーバ上に置く」 と言うのはあくまで理想。 下記の方法は試してませんので自信はありません。 一応アイデアだけってことで(^_^;; -------------------------------------- Sub Test() Dim varRet As Variant varRet = Shell("net use /delete z:") varRet = Shell("net use z: \\killer-queen\mp3 hogehoge /user:temtecomai") varRet = Shell("net use /delete z:") If Application.Wait(Now + TimeValue("0:00:03")) Then Workbooks.Open ・・・・・・ End If End Sub -------------------------------------- DOSのNETコマンドで共有フォルダにアクセスした「実績」を作っておくというものです。 その際にユーザー名とパスワードも忘れずに、と。 ただし私のマシンがWin2000なのでNETコマンドの引数が違う可能性があります。 これはお使いのWin95/98のDOS窓で「net use /?」として構文を確かめてください。

ninja972
質問者

お礼

こんばんは。 ご回答ありがとうございます。 お礼が遅くなって申し訳ありませんでした。 自分はMS-DOSの事を良く知らないので 一度「net use・・・」について良く勉強して から試してみます。

ninja972
質問者

補足

こんばんは。 確かに引数の部分が若干異なりましたが 無事にアクセスした「実績」を作れました。 ただIf Application.Wait(Now)~の部分で どうしても解決出来ないエラーが発生して てこずってしまいました。 if文の使用をやめて直接 Application.Wait (Now + TimeValue("0:00:03")) Workbooks.Open ・・・・・・ としたら、うまく実行出来ました。 教えて頂いて助かりました。 また、お礼や報告が遅くなり大変失礼致しました。 今後も宜しくお願い致します。

関連するQ&A

  • Openメソッドについて

    ブックAのSheet1にあるセルのデータをブックBのSheet1のセルにコピーするために、以下のようにOpenメソッドを使ったVBAを記述してみたのですが、エラーコード1004「指定されたファイルが存在しません」のようなエラーメッセージが出てきました。Openメソッドが使われている例を見ているとどうやらブックのあるフォルダを指定しているような感じがするのですが、Openメソッドは具体的に該当のブックのある場所を指定しなくてはならないのでしょうか??(私がVBAを記述するにあたり参考にしたインターネットのVBAを紹介するページでは、ブックのある場所を指定せず、私が記述したように直にブック名を入力していました。) お忙しい中申し訳ないのですが、どなたかご教授いただけると、とても嬉しいです!よろしくお願いいたします。 Sub ブックAのデータをブックBに() With Workbooks.Open("ブックA.xlsx")  .Sheets("Sheet1").Range("E8").Value = _ ThisWorkbook.Range("C2").Value End With End Sub

  • (Excel)VBA ファイルパスからファイル名を求める

    Excel97のVBAで  f-name = Application.GetOpenFilename() とするとf-nameにはオープンしたファイルのパスを含めたファイル名が代入されます。 これをそのまま  Workbooks(f-name).close とすると、パス部分が余分なのかエラーになります。 そこで、このf-nameからファイル名(ブック名)だけ切り出す方法があれば教えてください。 もしくはこのオープンからクローズまでの流れとして良いやり方があれば教えてください。

  • EXCEl/VBAで拡張子なしのファイルを開けない

    EXCEL2000 VBAのOpenTextメソッドで、拡張子の付いていないファイル(ABCDE)を開く時、同じフォルダにEXCELのブック(ABCDE.XLS)があるとブックの方を開いてしまいます。 拡張子なしのファイルを開く方法をご存知の方どうか教えてください。よろしくお願いします。

  • Excel2007VBAファイルの表示について

    ●質問の主旨 開いたダイアロボックス内のファイルについてエクセルファイル(.xlsxのみ)を 対象としたいと考えています。 下記コードをどのように書き換えればよいでしょうか? ご存知の方ご教示願います。私はVBA初心者です ●質問の補足 作成した下記のコードでは 「実行時エラー1004:GetOpenFilenameメソッドに失敗しました」 と表示されます。 参考書2冊読んで全くその通りに引用していて、なぜエラー表示に なるのかよく分かりません。 またTarget = Application.GetOpenFilename("Excelブック,*,xlsx")を Target = Application.GetOpenFilename()にするとダイアロボックスは 表示され、その中にあるエクセルファイルは表示されます。 ●コード Sub Sample3() Dim Target As String Target = Application.GetOpenFilename("Excelブック,*,xlsx") If Target <> "False" Then Workbooks.Open Target Else MsgBox "キャンセルされました" End If End Sub

  • エクセルVBA実行時のエラー:DLLファイルが見つ

    タイトル:エクセルVBA実行時のエラー:DLLファイルが見つかりません  質問させていただきます。どうぞよろしくお願いいたします。 環境:PC1~3の全てが、Excel2010、Win7になります。 初めてVBAから読み込むためのDLLファイルを作成いたしました。    PC1上で動作確認できている2つのファイル(Test4.dll(VC++2013にて作成)と それを呼び出すVBAのついたエクセルファイル)を、 PC2とPC3に移動し、VBAを実行しましたところ 何故かPC3でのみ下記エラーが発生いたします。 >実行時エラー'53' >ファイルが見つかりません。Test4.dll ・2つのファイルは同じフォルダ内で実行しております。 ・VBAのカレントパスは   ChDrive Left(ThisWorkbook.Path, 1)   ChDir ThisWorkbook.Path で変更しております。  試しにC:\Windows\System32と C:\Windows\SysWow64にも Test4.dllをコピペしてみましたが、同じエラーが出てまいります。 ・PC3のみ違うところを探してみましたが、思いつくのは下記くらいでございます。   1.VSが入っておりませんでした。(必要なのでしょうか??)   2.実行しているパスが違います。     PC1とPC2の実行パス:      D:\Users\Administrator\Documents\VBA_TEST     PC3の実行パス:      D:\Documents\VBA_TEST              もし何か原因として思いつかれる事がございましたらお教えいただけないでしょうか。 お詳しい方がいらっしゃいましたら何卒よろしくお願いいたします。

  • VBで「ファイル名を指定して実行」と同様の動きを再現

    VB6、WindowsXP VBのプログラムからあるフォルダを開きにいく単純なプログラムを作成しています。 通常のローカルフォルダであれば、Shell関数でExplorer.exeにパスを渡すだけで問題ないのですが、うまくいかないのは、 開きにいくパスがネットワークパス(\\[サーバ名]\[共有名])の場合で、サーバーにアクセスするのに認証が必要となる場合です。 ファイル名を指定して実行に「\\[サーバ名]\[共有名]」を打ち込んで実行した場合は、Windowsが出してくる認証ダイアログ(ユーザ名、パスワードを聞いてくる)が表示されて、ユーザーが正しいID、パスワードを入力すれば、エクスプローラで共有フォルダが開きます。 この動きがまさにやりたいことなのですが、 Shell関数を使用した場合、引数に「Explorer.exe \\[サーバ名]」と指定した場合はファイル名を指定して実行と同じなのですが、 「Explorer.exe \\[サーバ名]\[共有名]」を指定した場合、認証ダイアログが表示されずにエラー(ディレクトリが無効というような)となってしまいます。おそらく先にサーバ認証を行わずに直接共有を見に行ってしまって存在が掴めないのだと思います。 VBでファイル名を指定して実行と同様の動きを再現する方法をどなたかご存知ないでしょうか? 尚、shellexecuteやVB.NETでprocess.startなどでもやってみましたがshell関数と同じ動きでした。

  • VBAのOpenメソッドによるエラー

    VBAのマクロでOpenメソッドからURLを指定して実行すると、Windowsセキュリティのウィンドウが出て、IDとパスワードの入力を求められます。 実行ごとに毎回パスワード入力するのが大変手間なので、困っております。 windowsセキュリティの画面なのでOSの設定によるものかと思いますが、ウィンドウを出現させないようにする方法がありましたらご教授お願いいたします。

  • エクセルのファイルオープン時の指定ファイル名について

    環境:Win2000 VB.NET2003 参照:Microsoft Excel 9.0 Object Library エクセルファイルを開くために、Workbooks.Openを使用していますが、引数にフルパスを指定すると正常にオープンできるのですが、相対パスを指定するとファイルが見つからずに開けないというエラーになってしまいます。 Workbooks.Openでは相対パスは指定できないのでしょうか?それとも、何か他の指定が合わせて必要なのでしょうか? 教えてください、よろしくお願いします。

  • VBAでファイル名を変更したい

    EXCEL2003のVBAでブックを連続して保存をするものを作成したのですが、スキルが足りないため、ファイル名が数字になってしまい、リネームをしたいのですが、出だしからつまずいております。 リネームをしたいブック(ファイル)は一つのフォルダに入っており、 excelのシートには旧ファイル名と新ファイル名の一覧をつくり VBAを実行すると一覧に載っているブック名が変更される というものを作りたいのですが、可能でしょうか。 一覧は 旧ファイル名  新ファイル名 1.xls      1北海道.xls 2.xls      2青森.xls という感じです。 フリーのリネームソフトではなく何とか自力でやりたいと思っております。 お力をお貸しください。 よろしくお願いいたします。

  • Excel2007で2003のVBAが実行時エラー1004

    普段は事務員の非プログラマーです。 Excel2000,2003で動いていたマクロを2007でも動くようにしてほしいと言われて頑張っているのですが、どうすればいいのか見当がつきません(*_*) どうぞ知識者の皆様のお知恵をお貸しください。 Excel2003で読み取りのみのVBAのファイルで、ボタンを押すとマクロが実行され、別CSVファイルを指定しVBAのファイルの別シートとして読み込みます。次に別txtファイルを指定してVBAのファイルの別シートに読み込みます。最後にその2つのシートの必要な個所のみ結合して、新しいcsvファイルとして保存する処理をしています。 Excel2007でこれを実行すると、csvファイルを読み込むときに次のようなエラーがでます。 「実行時エラー'1004':移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 マクロの中身はこのような感じです。 エラーは最終行の「ActiveSheet~」ででています。 Sub openExcel() 'Step1 open excel Dim ExcelFileOpen As String ExcelFileOpen = Application.GetOpenFilename(FileFilter:="Excel Files,*.csv") If ExcelFileOpen <> "False" Then Workbooks.OpenText Filename:=ExcelFileOpen ActiveSheet.Move After:=Workbooks(ThisWorkbook.Name).Sheets(1) どうぞよろしくお願いいたします(_ _)

専門家に質問してみよう