• ベストアンサー

エクセルオープン時にメッセージを出したい。

エクセルオープン時に、「まずマクロを有効にしてください。」というメッセージを表示したいと思います。メッセージをシートに書いておきいて、そのシートを最初に表示する方法があってもマクロ自体を有効にしていなければそのシートが出てきません。何かいい方法はないでしょうか。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

#3です。 前回の回答は忘れてください。 こんなことを考えていたのですが。。。 シート名 MSG 内に 「マクロを有効に」と入れて置く。 ブックのイベントに Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False Worksheets("MSG").Visible = True Worksheets("MSG").Select ThisWorkbook.Close savechanges:=True ’←BeforeClose中に、.Close 危ない方法の気がします。 Application.ScreenUpdating = True End Sub Private Sub Workbook_Open() Worksheets("MSG").Visible = False End Sub のような感じで入れて置く。 これだと、マクロを有効にしないで開き、他のシートにフォーカスを与えて上書き保存する。 次回からもマクロを有効にしないで開く。 当然、BeforeCloseが無効なので、セット出来ない。 『下手な考え休むに似たり』でした。orz ブック単独ではたぶん無理。 何らかの外部からのが必要になりそう。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_300.html

kafun-show
質問者

お礼

具体例を書いていただき大変参考になりました。ありがとうございました。 これからリンク箇所を読んでみようと思います。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

考え方を180度変えて Open時かAuto_Openに 『そのシート』を隠す処理を書いておく。 Before_save かCloseに 『そのシート』を再表示し選択しておく処理 上書き保存処理。 でイケルはず。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

ブックのシートを開いた後で「開発」タブの「Visual Basic」をクリックし、表示の画面でVBA Projectの項目から「This WorkBook」を選択してコードの表示を行います。 右側の窓に次のマクロを入力してはいかがでしょう。 Private Sub Workbook_Open() MsgBox "まずマクロを有効にしてください" End Sub これでそのブックを立ち上げたときにメッセージが表示されます。

kafun-show
質問者

お礼

回答いただきありがとうございました。

回答No.1

自分ならあまりやりたくありませんが、一案として。 XLSTARTフォルダのテンプレートを都合の良い物に差し替える。 「XLSTARTフォルダとは」 http://www.relief.jp/itnote/archives/003346.php

kafun-show
質問者

お礼

回答いただきありがとうございました。