[[20050420111632]] 『Bookを開く際にメッセージを表示したい』(さゆ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Bookを開く際にメッセージを表示したい』(さゆ)

 何方か教えて下さい!
 マクロを組んで作成したBookがあるのですが、他の人が開く時にマクロを
 無効にしてしまう為、せっかく作ったマクロが意味がなく困ってます。
 強制的にマクロを有効にして開くようにするのは無理だと思うのですが、
 せめて開く時に「マクロを有効にしないとダメですよ!」というメッセージの
 ような物を表示させて、注意を促したいと思います。
 できますでしょうか?


 多分無理だと思いますので、代替案として、使ってないシートに
 「マクロを有効にして開いてね♪」 って大きく書いておいて、
 有効にして開いたらそのシートを非表示にするなり、削除するなりしては
 いかがでしょうか。

 テキストボックスを配置しておくってのも良いかもです。有効にして開いたら
 テキストボックスを削除するコードを入れておく。

 (川野鮎太郎)

 デジタル署名するとか。
http://www.asahi-net.or.jp/~ef2o-inue/secur/sub07_02.html
(ケン)


 ブックを閉じる際に、マクロで目的のシートは非表示にし、
 ダミーシートだけ表示するようにしてください。

 そして、ブックを開く際にマクロで目的のシートは表示し、
 ダミーシートは非表示にしてください。

 そうすることにより、マクロを有効にしない限り、
 目的のシートを利用することができなくなります。

  (INA)


 皆さん有難うございます。
 やっぱり、単純にコメント表示するのは無理なんですね。

 マクロが何なのか分かってない人も多く扱うので...とは言っても、やっぱり
 INAさんの方法しかないような気もします。
 保存用のマクロボタンを皆が押してくれるかどうか^^;

 川野さんの方法でもいけるかな?と思ったのですが、リレー方式で回すBookの為、
 最初に開く人にしか有効じゃないんですよね。。。

 auto_open用のマクロと保存用のマクロを作る事に致します。

 ケンさんもデジタル署名のアイデア有難うございました!
 今度活用しようと思います。
 (さゆ)


 > 保存用のマクロボタンを皆が押してくれるかどうか^^;
 Workbook_BeforeCloseイベントで自動に処理すればいいのでは?
 開いた時は、Workbook_Openイベントです。
 鮎さんもINAさんもそれを言っておられると思います。
(純丸)(o^-')b


 私の提示した方法をマクロで処理するなら、ポイントは Saved プロパティです。
  (INA)

 衝突しました。
 純丸さん、すみません。
 そんなに詳しくないので教えて頂けませんでしょうか;;
 A,B,Cと3つシートがあり、A,Bが必要なシートで、Cを上述のダミーシートにしました。
 皆さんは分かっていらっしゃると思いますが、下記にやりたい事を記述しますね。 

 @開く時にマクロを無効ならCのシートのみ表示、有効した場合、A,Bのみを表示。
 A閉じる時に、A,Bを非表示にし、Cのみ表示させる。

 図々しいですが、具体的にコードを教えて頂けるとうれしいのですが。。。
 (さゆ)

 auto_openでA,Bシートを表示、Cシートを非表示させるマクロを走らせ、
 auto_closeでA,Bシートを非表示、Cシートを表示させて保存するマクロを
 走らせる事にして、とりあえず自己完結しました。

 純丸さんとINAさんの言っておられる事は追々検索駆使して勉強します♪
 アイディア出してもらわなければ思いつきませんでした。
 皆さん、色々有難うございました!
 (さゆ)

 それだと、 閉じる → キャンセル すると・・・

  (INA)

 あ、それは閉じる時に強制的に上書き保存しているので、キャンセルできないです。

 こんなかんじのマクロをauto_closeで走らせてます。
 (何かムダな記述あるような^^;)

 Sub Macro2()

    Sheets("C").Visible = True
    Sheets(Array("A", "B")).Select
    Sheets("A").Activate
    ActiveWindow.SelectedSheets.Visible = False
    ActiveWorkbook.Save

 End Sub

 (さゆ)

 と思ったら・・・他にもBook開いた状態でExcel全体を閉じるとエラー出ますね^^;
 一つづつ閉じれば何とかなりそうなので、とりあえずこれで使ってみて様子みます。

 う〜ん、Excelは奥が深い!!ですね♪
 長々とお付き合い有難うございました!
 (さゆ)


 >それは閉じる時に強制的に上書き保存しているので
 間違えて操作したときに、保存せずに終了できないのは危険だと思いますけど?

  (INA)

 INAさん、確かにおっしゃる通りです。

 率直に言うとこのBook、コンボボックスを有効にしたいだけなんです。
 本来、関数のみで他にマクロは組んでませんでした。
 マクロを無効にして、コンボボックスからではなく任意のセルに直接品名を
 打ち込まれてしまうことがあり、合ってればまだしも、部分的には合ってる
 品名を打ち込まれて、違う金額を返してしまう事とかが多々あったのです。
 (VLOOKUPの検索の型をFLASEにすれば済む話だったのですけどね、これは^^;)
 入力規則だと、全ての品名を表示しきれず使いづらいとか、色々注文つけられて
 現在改良8版目です。。。
 その間、セルのロックをかけたりなんだかんだやってたら、使いづらいとかで
 勝手に別のシートにフォームだけコピーして使い始める人も現れ...TT

 で、このファイル、6回くらいメールで回すのですけど、進捗の確認とか含めて
 全て私の所に回るようにしています。
 かつ、一人一人が入力する項目は本当に些細な事なので、保存せずに終了できない
 リスクを負ってでも、”コンボボックスから選択させる”事を優先しました。

 ふと振り返れば、こんな簡単な入力項目なのに、なぜここまで改良を...(´ヘ`;)

 ここで回答して下さる方々でしたら、サクっと解決!されていたでしょうね^^
 でも、今回の事で本当に色々覚える事ができて良かったです♪

 また何かあったら、その時は宜しくお願いします( ゚ー^)b ネ!
 (さゆ)


 丁寧な説明有り難うございます。

 具体的な運用方法や、問題点を教えていただけると、
 このような事例があることが分かり参考になります。

 マクロを強制的に有効にさせるという手段は、悪意があるとまずいですが、
 会社業務において、一般機能で対応しきれず、マクロに頼らなければならない状況では、
 マクロを無効にされて不具合が生じるというのは、ほんと避けたいですね。

 サンプルを作りましたので、ダウンロードしてお試し下さい。
http://camaro.ddo.jp/books/alwaysmacro.xls

   (INA)

 INAさん・・・すごいです!!メチャクチャ感激です!!
 早速移植してみました♪
 こちらの方が安全な上、サイズもちょっと軽く、開くのも閉じるのも私が作った
 物より軽快でした!(スペックが足りないPCなので良く分かります!)

 本当に何と御礼を言って良いか^^;
 有難うございました!!
 (さゆ)


 ご希望に添えてよかったです。 

 ブックClose時の確認メッセージをExcel標準と同じように変更したので、
 サンプルブックを更新しておきました。

  (INA) 

 INAさん、至れり尽くせり、本当に有難うございます!
 (さゆ)
 P.S camaroのページちょこっと見させて頂きました♪
     Excelだけでなく色々知っているのですね〜、感心しきりです^^

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.