アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になってます。

マクロの記録で、シートの何箇所かの指定した部分のセルの色を白色にして印刷するマクロを作ったのですが、シートを保護すると自動で白色にしますが、印刷しません。

エラーの表示は、
「実行時エラー’1004’ InteriorクラスのColorIndeXプロパティを設定できません。」
です。
デバッグというところを押すと、
記述の「Selection.Interior.ColorIndex = 2」という部分が黄色くなっていました。

解消するにはどうすればよいのでしょうか?
どうぞご教示のほどよろしくお願いします。

【エクセル2003】

A 回答 (1件)

シートの保護がかかっているため、マクロ内でセルの色が変更できないのだと思います。


対策はいろいろあると思いますが、以下のような感じでいかがでしょうか。

<その1>
ActiveSheet.Unprotect
Selection.Interior.ColorIndex = 2
ActiveSheet.Protect

として、セルの色を変えるときだけシート保護を解除する。

<その2>
ActiveSheet.Protect UserInterfaceOnly:=True
ActiveSheet.Range("A1").Interior.ColorIndex = 2

として、「画面からは変更できないが、マクロでは変更できるモード」のシート保護にマクロの中で変更する。

<その3>
ActiveSheet.Protect UserInterfaceOnly:=True
だけのマクロを作成し、シート保護をかけるときはExcelのメニューからでなく、上記マクロを実行して保護をかける。(元のマクロはいじらない)
    • good
    • 1
この回答へのお礼

大変勉強になりました。
私の職場での大きい効率UPになります。誠にありがとうございます。

お礼日時:2007/01/19 06:07

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

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


このQ&Aを見た人がよく見るQ&A