プロが教えるわが家の防犯対策術!

標記のとおりの質問です。

あるブックAからブックBをOpenし、
UserInterfaceOnlyでロックしたものを編集しようとするのですが、
その際に

実行時エラー '1004':
変更しようとしているセルは保護されているため、読み取り専用となっています。

とのエラーが出てしまいます。
これはブックBで単独で実行するときには出ない症状です。
他ブックから開かれたブックはUserInterfaceOnlyが作用していないのでしょうか。
因みに、B.Closeを実行した中でのWorkbook_BeforeClose関数内での動作です。

どなたかご教示ください。よろしくお願いいたします。

A 回答 (12件中11~12件)

読み取り専用を解除してみてもダメですかね?



Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=False

この回答への補足

ご回答ありがとうございます。
試してみましたが、残念ながらうまくいきませんでした。

補足日時:2009/08/31 12:10
    • good
    • 0

共有ファイルなどでもそうですが、ファイル(ブック)が開いている際は、データの整合性をとるために排他ロック(トランザクション)がかかった状態となります。


「データの整合性」には、ファイル内部の設定も一式が含まれますので、その状況でprotectをかけることはできません。(っというか、設定を変更する処理は落ちます。)

今回の場合は、複数で開かれていないのであれば、A→Bの処理が「多重窓」と捉えられているのかもしれません。
ただ
UserInterfaceOnly = True
これは通ると思いますけどねぇ・・^^;

この回答への補足

>UserInterfaceOnly = True
>これは通ると思いますけどねぇ・・^^;

ですよね・・・
いわゆるトランザクション処理とも違うので、まさかとは思ったのですが。
仕様として諦めたほうがいいんでしょうか。。

補足日時:2009/08/31 09:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています