本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]他ユーザーが使用中のファイルを開く時任意のメッセージを表示する方法

文書番号: 402465

最終更新日: 1997/10/20


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402465

概要

Excel 5.0 では、ネットワーク上のファイルで、他のユーザーが使用しているファ
イルを [上書き禁止] の状態で開くことができます。他のユーザーが使用している
ファイルを開こうとすると、メッセージ「ファイルは使用中です」が表示され
[上書き禁止] で開くかキャンセルするかなどを選択することができます。
本文書は、Microsoft(R) Visual Basic(R) Programming System Application Edition (以下 VBA) を使って、他のユーザーが使用しているファイルを開こうとした場合
に、任意のメッセージを表示し [上書き禁止] でファイルを開かないようにする
方法を、サンプル モジュールと共に解説しています。

詳細

目的のブックを開くには、Workbooks オブジェクトの Open メソッドを使用しま
す。ファイルを開こうとした時に、そのファイルが既に他のユーザーにより使用
されている場合は、自動的に [上書き禁止] で開かれます。
目的のファイルが既に他のユーザーにより使用されているときは、そのファイルを
開かずに他の処理をさせようとした場合、Workbooks.Open を実行する前に、
そのファイルが他のユーザによって使用されているどうか判断する必要があります。 Excel 5.0 では「指定したファイルを他のユーザーが使用しているかどうか」を取
得するプロパティは用意されていません。そこで、Workbooks.Open を実行する前
に、Open ステートメントを使用して [書き込み専用] として目的のファイルを開
き、意図的に発生させたエラーを利用します。
Open ステートメントは「ファイルを開いて、ファイルへの入出力を可能にする」
機能を持っています。指定項目 Access のキーワードに Write を指定すると、
ファイルを [書き込み専用] でオープンします。ファイルが別のプロセスで
既に開かれていて指定したアクセスが実行できないとき、Open ステートメ
ントはファイルを開くことができず、エラー番号 70 「書き込みできません」が
発生します。On Error ステートメントを使用して、ファイルを開くことができ
なかった場合の処理を行います。

サンプル モジュール

次のサンプル モジュールでは、ファイル F:\DATA\SAMPLE.XLS を [書き込み専用]
として開き、正常に開くことができなかった場合にはメッセージ「このファイル
は使用中です」を表示し、作業を終了しています。
  Sub FileShareCheck()
  Dim MyFile As String
  On Error GoTo ErrorTrap
      MyFile = Dir("F:\DATA\SAMPLE.XLS")
      If MyFile = "" Then
          MsgBox "指定したファイルはありません"
      Else
          '書き込み専用でオープン
          Open "F:\DATA\SAMPLE.XLS" For Binary Access Write As #1
          Close #1
          Application.Workbooks.Open Filename:="F:\DATA\SAMPLE.XLS"
      End If
      Exit Sub
  ErrorTrap:
      MsgBox Err & Error(Err)
      MsgBox "このファイルは使用中です"
      Exit Sub
  End Sub

Keywords: KBHOWTO KB402465
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system