過去ログ

                                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
というようなプログラムでアクティブにしようとすると ”インデックスが有効範囲にありません” というエラーが出てしまうので、ネットワーク先のコンピュータのファイルをアクティブにする方法も教えてください。
 ───────────────────────────────────────  ■題名 : Re:LAN通してのファイル保存  ■名前 : Nakamura  ■日付 : 03/1/22(水) 23:14  -------------------------------------------------------------------------
   こんばんは

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

とします。

外れていたらご容赦ください。

それでは
 ───────────────────────────────────────  ■題名 : Re:LAN通してのファイル保存  ■名前 : tetu  ■日付 : 03/1/23(木) 14:28  -------------------------------------------------------------------------
   Nakamuraさんうまく動きました!
丁寧に教えていただき本当にありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 595