Excel VBA:テキストファイルを他から読み書きできないようロックし開く

他のプロセスからのアクセスの制御を設定し、テキストファイルを開く方法です。



Homeに戻る > Excel ファイル操作のTipsへ

テキストファイルを開き修正している時に、同時に他の人が修正した場合どちらが反映されるか分かりません。

また同時に保存した場合、最悪ファイルが壊れる可能性があります。

そこでそのような心配がある場合は、掲載している内容で設定すると安心です。

ロックするには、Openステートメントにlockキーワードで設定します。


Openステートメントの構文

Open PathName For mode [Lock] As #FileNumber


Lockのキーワード
  • Shared : 他のプロセスからの読み書きの操作を許可する(既定値)
  • Lock Read : 他のプロセスからの読み込みをロックする
  • Lock Wright : 他のプロセスからの書き込みをロックする
  • Lock Read Wright : 他のプロセスからの読み書きの両方をロックする

関連する「シートのデータをテキストファイルに保存する」を掲載していますので参照してください。



テキストファイルを他から読み書きできないようロックし開くExcel VBA


ExcelシートのVBAコード

実行画面
Excel実行画面

Closeボタン

Private Sub CommandButton2_Click()
    Close fno
End Sub


Lock Read (他からのReadはできないがWriteはOK)

Private Sub ExTextRead()
    fno = FreeFile
    'Lock Read で開く
    Open "c:\test.txt" For Input Lock Read As fno
End Sub


メモ帳で開くと「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」とメッセージが表示されます。

ファイルが開かない

Lock Write (Readは許可するがWriteはできない)

Private Sub ExTextRead()
    fno = FreeFile
    'Lock Write で開く
    Open "c:\test.txt" For Input Lock Write As fno
End Sub


メモ帳で変更し保存しようとすると「パスおよびファイルが正しいか確認してください。」とメッセージが表示されます。



Homeに戻る > Excel ファイル操作のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved