Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


85 / 308 ツリー ←次へ | 前へ→

【645】LAN内で誰かがファイルを開いていたら開かない れおパパ 09/7/23(木) 22:47 質問[未読]
【646】Re:LAN内で誰かがファイルを開いていたら開か... りる 09/7/25(土) 17:30 回答[未読]

【645】LAN内で誰かがファイルを開いていたら開か...
質問  れおパパ  - 09/7/23(木) 22:47 -

引用なし
パスワード
   ワードファイルにパスワードを設定するプログラムを作成中ですが
誰かがLAN内で同じファイルを開くときに、「使用中のファイル」のメッセージがでますが、このメッセージがでたときはファイルを開かせないか、一度読み取りで開くなりメッセージを出さないようにすることはできるのでしょうか?

【646】Re:LAN内で誰かがファイルを開いていたら開...
回答  りる  - 09/7/25(土) 17:30 -

引用なし
パスワード
   れおパパ さん、こんにちは。

>ワードファイルにパスワードを設定するプログラムを作成中ですが
>誰かがLAN内で同じファイルを開くときに、「使用中のファイル」のメッセージがでますが、このメッセージがでたときはファイルを開かせないか、一度読み取りで開くなりメッセージを出さないようにすることはできるのでしょうか?
サポートにある、ファイルが使用中かどうかをチェックする簡単な関数のサンプルコードです。
htt p://support.microsoft.com/kb/209189/ja
かなりあやしい日本語ですが(笑)、メッセージボックスを表示する部分を除いてほぼそのまま転載してあります。

パスワードを設定しようとしているならば、開かないほうがよさそうですよね。
Sub Test()
  Dim Ifile As String
 
  Ifile = "d:\TEST\TEST.doc"
  '
  If FileLocked(Ifile) = True Then
   Debug.Print "×", Ifile, Time
  Else
   '正常な処理
   Debug.Print "○", Ifile, Now
   Application.Documents.Open Ifile
  End If
End Sub
'//////////////////////////////////////////////////
Function FileLocked(strFileName As String) As Boolean
  On Error Resume Next
  ' If the file is already opened by another process,
  ' and the specified type of access is not allowed,
  ' the Open operation fails and an error occurs.
  Open strFileName For Binary Access Read Write Lock Read Write As #1
  Close #1
  ' If an error occurs, the document is currently open.
  If Err.Number <> 0 Then
   FileLocked = True
   Err.Clear
  End If
End Function

Debug.Printでイミディエイトウィンドウに処理結果を記録しています。

85 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207130
(SS)C-BOARD v3.8 is Free