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

お世話になります。早速ですが、、、

Sub ●()

Selection.FormulaR1C1 = "●"
With Selection.Font
.Name = "MS Pゴシック"
.Size = 11
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub

これは、自動記録でのマクロですが、実行されるセル以外の保護と、
併せてシート保護を掛けた状態で実行すると下記エラーが出ます。


実行時エラー '1004':
『 Font クラスの Name プロパティを設定できません。』


エラーの終了ボタンを押すことで何もなかったかのように治まりますが、実行のたびにエラー出力します。
但し、この自動マクロは、エクセル2000上で作成したもので、2000上で実行するとエラーは出ませんが、
2002上で実行すると発生します。何が悪いのでしょうか?

A 回答 (2件)

Excel97 は 2000 と、


2003 は 2002 と同じ動作のようです。
ワークシートの保護オプションの変更に伴う仕様変更でしょうか。
2000以前では、手動での変更は不可にもかかわらず
VBA で書式変更できてしまうので、2002 で修正したのかも?

[XL2002] ワークシートの保護オプションの概要
http://support.microsoft.com/kb/289269/ja
    • good
    • 0
この回答へのお礼

なるほどそうですか。
レスの上部2行と保護オプションに関しては気になった部分でした。
会社のPCは2000 と2002なので諦めるしかないかも知れないですね?
ありがとうございます。リンクもこれから読ませて頂きます。

お礼日時:2006/10/26 01:41

こんばんは。



>エクセル2000上で作成したもので、2000上で実行するとエラーは出ませんが
そうでしょうか?こちらのExcel2000でも、エラーは出ます。

基本的にシート保護を掛けた状態で、書式を変更しようとすれば、実行時エラーは出るはずです。

プロテクトしたシートで、マクロを有効とする場合は、

Sub Protect_MacroAvailable()

'プロテクトを掛け、UserInterFaceOnly プロパティをTrue にしてあげないと出来ません。
ActiveSheet.Protect, UserInterFaceOnly:=True

End Sub
    • good
    • 0
この回答へのお礼

せっかく回答頂いたのにお礼が遅くなり申し訳ありません。
これは会社での話でありまして、今後2002以上に移行されると思いますが
今のところ2000で実行する上ではエラーは発しません。
以後、紹介頂いた方法で対処してみたいと思います。
ありがとうございました。

お礼日時:2006/11/19 21:30

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