「ファイルロック (排他制御) 的なもの」の版間の差分

MSY-07 (トーク | 投稿記録)
非推奨のタグを修正
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
 
(同じ利用者による、間の8版が非表示)
1行目: 1行目:
このマクロは[https://www.haijin-boys.com/software/mery/mery-3-3-0#17 Mery Ver 3.3.2]で追加された「ファイルが外部で変更されたときに書き込みを禁止する」と同機能です。
== 概要 ==
Meryで開いた文書を、無理やり(!?) ファイルロックするマクロです。
Meryで開いた文書を、無理やり(!?) ファイルロックするマクロです。


要は、Meryで文書を開いている間、その文書を他から弄られないようにします。
要は、Meryで文書を開いている間、その文書を他から弄られないようにします。


== 欠点 ==
== 注意事項 ==
* マクロにて、文書を閉じる (Document.Close) 処理を行っている場合、そのマクロに手を加える必要がある。
* マクロにて、文書を閉じる (Document.Close) 処理を行っている場合、そのマクロに手を加える必要がある。
** Utility\FileLock.vbs を非同期で呼び出し、少し待機する という処理を追加。
** Utility\FileLock.vbs を非同期で呼び出し、少し待機する という処理を追加。
* ファイルロック処理が、常にフラグ用ファイル有無を確認するという処理なので、文書をたくさん開くと、フォルダへのアクセスが頻発する。
* ファイルロック処理が、常にフラグ用ファイル有無を確認するという処理なので、文書をたくさん開くと、フォルダへのアクセスが頻発する。
** フォルダへのアクセスを抑えたバージョンは、現状 非公開 (コードが長ったらしいので..)。
** フォルダへのアクセスを抑えたバージョンは、現状 非公開(コードが長ったらしいので…)。


== 構成 ==
== 構成 ==
31行目: 34行目:


== ソースコード ==
== ソースコード ==
=== FileLock.vbs ===
Macros\Utility フォルダの中に置く。


■ '''FileLock.vbs''' … Macros\Utility フォルダの中に置く
<syntaxhighlight lang="vbscript" copy>
<syntaxhighlight lang="vbscript">
'==============================================================================
'==============================================================================
'                          ファイルロック (Mery用)
'                          ファイルロック (Mery用)
240行目: 244行目:
</syntaxhighlight>
</syntaxhighlight>


■ '''FileLock|Lock.vbs''' … イベント登録を忘れずに
=== FileLock|Lock.vbs ===
<syntaxhighlight lang="vbscript">
イベント登録を忘れずに。
 
<syntaxhighlight lang="vbscript" copy>
#title = "文書をロック"
#title = "文書をロック"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
266行目: 272行目:
</syntaxhighlight>
</syntaxhighlight>


■ '''FileLock|Unlock.vbs''' … イベント登録を忘れずに
=== FileLock|Unlock.vbs ===
<syntaxhighlight lang="vbscript">
イベント登録を忘れずに。
 
<syntaxhighlight lang="vbscript" copy>
#title = "文書をアンロック"
#title = "文書をアンロック"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
294行目: 302行目:
</syntaxhighlight>
</syntaxhighlight>


■ '''FileLock|Unlock all.vbs'''
=== FileLock|Unlock all.vbs ===
<syntaxhighlight lang="vbscript">#title = "文書を全アンロック"
<syntaxhighlight lang="vbscript" copy>
#title = "文書を全アンロック"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
'    Summary | ファイルロックしてある文書をすべてアンロックする
'    Summary | ファイルロックしてある文書をすべてアンロックする
315行目: 324行目:
</syntaxhighlight>
</syntaxhighlight>


■ '''Close|Documents.vbs'''
=== Close|Documents.vbs ===
<syntaxhighlight lang="vbscript">
<syntaxhighlight lang="vbscript" copy>
#title = "すべての文書を閉じる"
#title = "すべての文書を閉じる"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
343行目: 352行目:
</syntaxhighlight>
</syntaxhighlight>


■ '''Open|Again.vbs'''
=== Open|Again.vbs ===
<syntaxhighlight lang="vbscript">
<syntaxhighlight lang="vbscript" copy>
#title = "自動選択で読み直し"
#title = "自動選択で読み直し"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
スポンサーリンク