
Excel2003を使っています。
基本的なことで恐縮なのですが、
Excelファイルを手動で開くとき、読み取り専用にするような方法はないでしょうか。
ファイルのプロパティから「読み取り専用」にチェックを入れても
NASの性質なのか、チェックが外れてしまいます。
(前提として、ここの変更は考えていません)
そこで、「読み取り専用を推奨する」にしたのですが、毎回メッセージボックスが出るため
「読み取り専用にしない」を選択される場合もあります。
そのため、VBAにその指示を書き込む方法を探していました。
たとえば、以下のコードを試してみました。
しかし、開いたファイルに指示しているため、当然ながら以下のメッセージが出ます。
"***.xls は既に開いています。2重に開くと、これまでの変更内容は破棄されます。***.xls を開きますか?"
Private Sub Workbook_Open()
Dim Filename As String
Filename = ThisWorkbook.FullName
With Workbooks.Open(Filename, , True)
.ActiveSheet.Activate
End With
End Sub
「読み取り専用を推奨する」をオンにして、Workbook.Openの引数である
ignorereadonlyrecommended を設定する…というのも、
やはり上記の点で引っかかります。
何か方法はないものでしょうか。。。
No.2ベストアンサー
- 回答日時:
>Excelファイルを手動で開くとき、読み取り専用にするような方法はないでしょうか。
マクロが動いていることが前提です。
この元のマクロは、私自身の作ではありませんが、このような方法は使えませんでしょうか。
'//
Private Sub Workbook_Open()
Dim flg As Boolean
With ThisWorkbook
If Not .ReadOnly Then
flg = .Saved
.Saved = True
.ChangeFileAccess xlReadOnly
.Saved = flg
End If
End With
End Sub
'//
ご回答ありがとうございます。上記のコード、試してみました。
少し短くできるかと思って、以下も試してみました。
Private Sub Workbook_Open()
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub
すると、以下のメッセージが出ます。
「読み取り専用の切り替えを行う前に、編集内容を保存しますか?」
…ご提示のように、Savedプロパティの設定がポイントかと思いました。
上記だと丸ごと各ファイルに貼って回ってもよさそうですね!
こちらを使わせていただこうと思います。
独断ですが、ベストアンサーとさせていただきます。ありがとうございました。
No.1
- 回答日時:
シートの中身を「書き換えさせたくない」のであれば、以下のようにします。
1.書き換えさせたくないセルを選択する。すべてであれば、全セルを選択する。
2.「書式」→「セル」→「保護」タブ→「ロック」にチェックを入れる→「OK」ボタン。
3.「ツール」→「保護」→「シートの保護」→「シートとロックされたセルを保護~」にチェックを入れる→「シートの保護を解除する為のパスワード」に、任意のパスワード文字列を入力する→「OK」ボタン。
4.上記1~3を、すべてのシートに対して行う。
5.「ファイル」→「上書き保存」で、ブック(ファイル)を上書き保存する。
これでオッケーです。xlsファイル(ブックファイル)を、読み取り専用にする必要はありません。
ファイルを開くと、カーソルの位置情報とかが更新されてしまい、閉じようとすると「Book1への変更を保存しますか?」と言うダイアログが出ますが「はい」を押しても「いいえ」を押しても、セルの中身は書き換え出来ません。
以下、蛇足ですが。
xlsファイルは、上記のように「ファイルを開いただけで、内部情報が更新されて、ファイルが『更新あり』の状態にされてしまう」ので、ファイルそのものを読み取り専用(上書き禁止)にしてはいけません。
下手に読み取り専用(上書き禁止)にしちゃうと、上書き保存ボタンを押された時とかに「上書き出来ないから別名保存しろ」と、別名保存のダイアログが出たりして、面倒になります。
なお、ファイルを開いて「上書き保存」をされると、中身は書き換わってないですけど、保存は行われるので、ファイルのタイムスタンプ(更新日時)が書き変わってしまいます(タイムスタンプの更新は避けられません)
ご回答ありがとうございます。
記し忘れていましたが、この設定を行う各ファイルの中には、
「作業時の書き換えはOKだけど、保存はNG」という、
作業用オンリー(?)にしたいと思っているものがあります。
上記の方法は既に試しておりました。
丁寧なアドバイスをいただき、大変恐縮です。ありがとうございました。
***
>xlsファイルは、上記のように「ファイルを開いただけで、内部情報が更新されて、ファイルが『更新あり』の状態にされてしまう」ので、ファイルそのものを読み取り専用(上書き禁止)にしてはいけません。
他のファイルで何も手を付けていないのに「保存しますか?」と聞かれることがありました。
この疑問が解けました。今後の参考にさせていただきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) ExcelのVBAでWordを読み取り専用で開いて、見たいページに自動で移動する方法を教えて頂きたい 4 2022/07/27 10:39
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで誰が今開いているか...
-
Excel>PERSONAL.XLSが開かれて...
-
危険なファイルを正常にする方法
-
外付けHDDが再起動でデータなし...
-
EXCEL共有ファイルの使用中の相...
-
Chromebookを使用しています。 ...
-
CD-Rは水に濡れても大丈夫?
-
ACCESSでデータ読み取り専用を...
-
ExcelのVBAでWordを読み取り専...
-
読み取り専用ファイルを印刷レ...
-
Excelのファイルが突然開けな...
-
Excelブックの共有をしているの...
-
PCで作ったwordをスマホで編集...
-
CD-RWのデータが読み取り専用に...
-
excel で通知と読み取り専用の...
-
USBの読み取り専用を解除する方法
-
「fileは読み取り専用であるか...
-
autocadが作業途中で読み取り専...
-
パワーポイント「スライドの保護」
-
フロッピーに保存したExce...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL共有ファイルの使用中の相...
-
エクセルで誰が今開いているか...
-
Chromebookを使用しています。 ...
-
Excelブックの共有をしているの...
-
excel で通知と読み取り専用の...
-
Excel>PERSONAL.XLSが開かれて...
-
Excelのファイルが突然開けな...
-
PCで作ったwordをスマホで編集...
-
バッチファイルでExcelを読み取...
-
危険なファイルを正常にする方法
-
ExcelのVBAでWordを読み取り専...
-
エクセルで他の人が開いたとき...
-
NASのフォルダが読み取り専用に...
-
autocadが作業途中で読み取り専...
-
ACCESSでデータ読み取り専用を...
-
Excelが読み取り専用になる件に...
-
読み取り専用にチェックが入っ...
-
excel2003でxlsxファイルを更新...
-
属性の適用エラー表示が消えない
-
USBの読み取り専用を解除する方法
おすすめ情報