Page 595 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼LAN通してのファイル保存 tetu 03/1/22(水) 18:09 ┗Re:LAN通してのファイル保存 Nakamura 03/1/22(水) 23:14 ┗Re:LAN通してのファイル保存 tetu 03/1/23(木) 14:28 ─────────────────────────────────────── ■題名 : LAN通してのファイル保存 ■名前 : tetu <kenji0000@hotmail.com> ■日付 : 03/1/22(水) 18:09 -------------------------------------------------------------------------
LANを通して違うパソコンにデータを保存するためにデータを書き込むファイルが開かれている時にはそのファイルをアクティブにし、開かれていない時にはファイルを開くプログラムを作っています. LANを通さない場合は下のプログラムでうまくいくんですが、LANを通すと3行目の開いているファイル名を取得するところでネットワーク先のコンピュータではなくこちらのパソコンで開いているファイル名を取得してしまうのでうまくいきません。まったく違うやり方でもいいので教えてください. fileopen = False savefilename = "\\コンピュータ名\フォルダ名\ファイル名.xls" For Each myworkbook In Workbooks '開いているファイル名を取得する If myworkbook.Name = ファイル名 & ".xls" Then fileopen = True End If Next If Dir(savefilename) = "" Then Set newbook = Workbooks.Add newbook.SaveAs Filename:=savefilename ElseIf fileopen = True Then Workbooks(savefilename).Activate Else Workbooks.Open Filename:=savefilename End If また、ネットワーク先のコンピュータのファイルを Workbooks(savefilename).Activate というようなプログラムでアクティブにしようとすると ”インデックスが有効範囲にありません” というエラーが出てしまうので、ネットワーク先のコンピュータのファイルをアクティブにする方法も教えてください。 |
こんばんは Excelは違うフォルダや違うコンピュータで有っても、 同一ファイル名を同時に開くことは、出来ないと思います。 したがって、同名のファイルが開かれていた場合、どのコンピュータ(フォルダ) のファイルか調べて、対象となるコンピュータのファイルでなければ、 それを閉じてから開く必要があります。 >For Each myworkbook In Workbooks '開いているファイル名を取得する > If myworkbook.Name = "ファイル名.xls" Then > > fileopen = True > End If > Next を For Each myworkbook In Workbooks '開いているファイル名を取得する If myworkbook.Name = "ファイル名.xls" Then If myworkbook.Path <> "\\コンピュータ名\フォルダ名" Then myworkbook.Close False Else fileopen = True End If End If Next といった感じにします。 >Workbooks(savefilename).Activate ですが パス名を含めて指定することは出来ないので、 Workbooks("ファイル名.xls").Activate とします。 外れていたらご容赦ください。 それでは |
Nakamuraさんうまく動きました! 丁寧に教えていただき本当にありがとうございました。 |