• ベストアンサー

EXCELでシート名を変更できなくしたい。(VBAです)

こんにちは。 タイトルの通りなのですが、EXCELでセルの内容の変更はOKで シート名のみ変更できなくしたいのです。 もしくは変更されたら「シート名は変更できません」等のメッセージを出して、元のシート名に戻すと言うのでも結構です。 どのように、またどこに(それぞれのシートのオブジェクトのところ???)書けばいいのか教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#187541
noname#187541
回答No.3

#2です。VBAでしたね。 #2の操作を「マクロの記録」で記録するとコードが出来ます。 これを参考にするといいでしょう。

esk0105
質問者

補足

M-SOFTさん、どうもありがとうございました。 うまい具合にできました。 欲を言えば、シート名等を変更しようとした時に出てくる「ブックは保護されています。変更できません。」というメッセージをオリジナルにすることができたら・・・無理ですよ・・・ね。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

エクセルの色々な手作業の操作を行われたときに、VBAのプログラムとして知らせてくれる(捕らえられる)のは、イベントとして、エクセルVBAでは非常に限られたものです。変えた事を捉えられなければ、禁止しようがないわけですから、表裏一体です。操作を禁止したいために、たとえば行高を変えたときにとか色々要求はありえますが、きりがありません。APIを勉強すれば少し幅が広がると思いますが、アプリの1つの動作ごとに備えを造るのは難しいでしょう。

esk0105
質問者

お礼

imogasiさん、どうもありがとうございます。 やはりそうなんですねー。 このケースに限らず「~をした時」と言う指定に頭を悩ませることがよくあるのですが、やはり制約があるんですね。 API・・・?!こらまたすごい代物??? でもVBAをやり始めたばかりの私にとっては、VBAを使いこなすこと自体まだまだなので 遠い将来、チャレンジすることがあれば頑張ってみたいと思います。 ありがとうございました。

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.4

>「ブックは保護されています。変更できません。」というメッセージをオリジナルにすることができたら・・・無理ですよ・・・ね。 バルーンの機能を使うか、MsgBox関数で出来ます。 EXCEL の標準メッセージも出る様なら、止めてからでないと2回でるかな? 止め方は、忘れちゃいました(^^; ヘルプでお探し下さい m(_ _)m

esk0105
質問者

お礼

どうもありがとうございます。 止め方を探してみましたが、見つけることができませんでした。 もし止め方がわかってもメッセージを出すタイミング(どうなった時にメッセージを出すか)の指定が難しそうですね。 今のメッセージのままで行くか、他の方法を取るか検討してみます。

noname#187541
noname#187541
回答No.2

こんにちは。 ブックの保護でシート構成にチェックを入れて保護すれば変更できなくなります。 どうでしょうか。

  • dcontact
  • ベストアンサー率19% (11/57)
回答No.1

こんにちは。 私はVBAぜんぜん詳しくないのですが、 http://www.vbalab.net/ VBA質問箱 こちらの住民の方々にはかなり詳しく教えて頂いたことがございます。 もしかしたら、そっちの方が早く解決するかもしれませんね。

参考URL:
http://www.vbalab.net/
esk0105
質問者

お礼

dcontactさん、こんにちは。 私もVBA質問箱、利用させてもらったことがあります。 こちらの方もチャレンジしてみます。ありがとうございました。

関連するQ&A