FileSearchを使って複数のエクセルファイルを順に開きシート内容の更新を行っています。更新すべきファイルは、LAN上のサーバ(LANハードディスク)内のフォルダにおいてありますが、複数の人がファイルを開いて作業を行います。その時、FileSearchで更新作業をしようとすると2重に開く現象が発生します。
ファイルを開く方法は、openメゾッドをworbooksコレクションに対して行っています。
Workbooks.Open Filename:=.FoundFiles(iCount), UpdateLinks:=0で開き、Workbooks(FlieName).Close SaveChanges:=Trueで閉じます。
しかしこのままですと、読み取り専用でファイルを開いてしまい、保存時にコピーを保存するでマクロが止まります。そこで、openメゾッドに、Notify:=Falseを着けると、「読み取り専用で開きますか?」で停止します。次に、On Error GoTo でトラップしようとすると、、「読み取り専用で開きますか?」のダイアログで、いいえを選択するとトラップが出来るのですが、ハイだと当然トラップできません。それよりも、ダイアログが表示されるのには変わりありません。
Displayalerts=Falseとすると、ダイアログは表示されなくなりますが、エラーがトラップ出来なくなります。ファイルの2重で開くのトラップってどうすれば出来るのでしょうか?似たようなものにOpenステートメントもあるようですが、うまく出来ませんでした。どなたか?詳しい方教えて頂けませんでしょうか?宜しくお願い致します。
目的としては、2重に開く現象となったファイル名をThisworkbookのシートに一覧保存してあとで対象のものだけ処理を行うようにしたいです。また、2重に開いたときに表示される使用者名もゲットしたいです。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
補足です。
#1 の参考URLを参考に関数を書きましたが、Open strFULLPATH For Binary Access Write As #n
ではなくて、
Open strFULLPATH For Binary Lock Write As #n
とした方が今回の目的にはよりマッチしていると思います。
この回答への補足
いつも、いつも、いつも丁寧なご指導有難う御座います。毎回毎回、新しいことを教えて頂き、恐縮いたします。マイクロソフトも色々と情報を提供し手いるのですね?与えられている情報が全く活用できていないことを、またもや、痛感いたしました。
ほんのちょっとのアレンジが大切である!もっともだと思いました。
本当に、本当に有難う御座います。
今後とも宜しくお願い致します。
お礼の点数を割り振ることしか出来ないことに、申し訳なく感じます。
No.1
- 回答日時:
こんにちは。
KenKen_SP です。> ファイルの2重で開くのトラップってどうすれば出来るのでしょうか?
【参考】MS サポートオンライン より
[XL]他ユーザーが使用中のファイルを開く時任意のメッセージを表示する方法
http://support.microsoft.com/default.aspx?scid=k …
これを次のような関数にしてチェックします。
'ファイルが既に開かれているか確認する関数
Function FILE_OPENED(ByRef strFULLPATH As String) As Boolean
Dim n As Long
n = FreeFile
On Error Resume Next
Open strFULLPATH For Binary Access Write As #n
Close #n
If Err.Number > 0 Then
FILE_OPENED = True
End If
On Error GoTo 0
End Function
【使い方の例】
IF FILE_OPENED(.FoundFiles(iCount)) Then
Msgbox "ファイルは使用中です。"
End IF
とりあえず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
EXCELのマクロの重複起動の禁止
Excel(エクセル)
-
VBAで二重起動を防止したいのですが、
その他(Microsoft Office)
-
エクセルの二重起動をやめたい
Visual Basic(VBA)
-
-
4
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
9
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで誰が今開いているか...
-
EXCELが勝手に「読み取り専用」...
-
Excelブックの共有をしているの...
-
ACCESSでデータ読み取り専用を...
-
バッチファイルでExcelを読み取...
-
Excel>PERSONAL.XLSが開かれて...
-
エクセルで他の人が開いたとき...
-
エクセルでCSVデーターを所定の...
-
Excelのファイルが突然開けな...
-
ExcelのVBAでWordを読み取り専...
-
上書き保存するとコピーがいく...
-
読み取り専用ファイルを印刷レ...
-
読み取り専用にチェックが入っ...
-
EXCEL共有ファイルの使用中の相...
-
autocadが作業途中で読み取り専...
-
危険なファイルを正常にする方法
-
.pstファイルが読み込めず困っ...
-
グーグルクロムにダウンロード...
-
PCで作ったwordをスマホで編集...
-
Eclipse で同期するたびに読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで誰が今開いているか...
-
EXCELが勝手に「読み取り専用」...
-
ACCESSでデータ読み取り専用を...
-
PCで作ったwordをスマホで編集...
-
EXCEL共有ファイルの使用中の相...
-
Excelブックの共有をしているの...
-
Excelのファイルが突然開けな...
-
エクセルで他の人が開いたとき...
-
読み取り専用にチェックが入っ...
-
Chromebookを使用しています。 ...
-
グーグルクロムにダウンロード...
-
NASのフォルダが読み取り専用に...
-
エクセルのファイルが突然読み...
-
バッチファイルでExcelを読み取...
-
ExcelのVBAでWordを読み取り専...
-
USBの読み取り専用を解除する方法
-
Excel>PERSONAL.XLSが開かれて...
-
楽天Edyの読み取らせかた
-
excel で通知と読み取り専用の...
-
エクセルでCSVデーターを所定の...
おすすめ情報