tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルシート削除イベントは?
記事No12422
投稿日: 2008/06/03(Tue) 19:38
投稿者ダンボ
お世話になります。EXCEL2000 VBAです。

ユーザがシートを削除しようとしたときに、削除はせずに非表示に代えたいです。
シートの非表示の方法は知っていますが、「シートを削除しようとしたとき」の
捕らえ方が分かりません。

[ツリー表示へ]
タイトルRe: シート削除イベントは?
記事No12423
投稿日: 2008/06/03(Tue) 23:13
投稿者neptune
こんにちは

> ユーザがシートを削除しようとしたときに、削除はせずに非表示に代えたいです。
> シートの非表示の方法は知っていますが、「シートを削除しようとしたとき」の
> 捕らえ方が分かりません。
イベントが無いんですよね。
で、VBAのみでやる場合、標準で用意されているシートの削除のメニューを使用不可
にして自前でメニューにシートの削除メニューを作成して、自前のコマンドでしか
削除できないようにするような方法しかないと思います。

・・・SPY++でメッセージ調べて、VBとか他の言語で捕まえるってのはこの際除外と
言う事で。(出来るかどうかはやったこと無いので知りませんけど^ ^;)

[ツリー表示へ]
タイトル[解決] シート削除イベントは?
記事No12436
投稿日: 2008/06/04(Wed) 12:08
投稿者ダンボ
neptuneさん、どうも有り難うございます。

> イベントが無いんですよね。

了解しました。無いものは無いということで。
基本方針として、
システムメニューをEnabled=Falseにするか、あるいは処理ルーチンを
自前のサブルーチンに割り付けなおすかのどちらかで対処します。

いずれにしてもシステムメニューの書き換えですので、
・メニュー名/アイテム名の調査
・メニュー現状の保存/復帰
に注意しないといけないです。
(特に後者は異常終了/強制終了で不整合になりやすい)
(前者は普通、2箇所に対応メニュがある。コマンドメニューとシートタブ)

[ツリー表示へ]