- ベストアンサー
EXCEL97でも動くようにするには?
EXCEL2000を使用して Private Sub Worksheet_Change(ByVal Target As Range) を使用してセルの値が変更されたら動くマクロを作成しました。 セルには直接値を入力するものではなく、 セレクトボックスの中からひとつを選択するようになっています。 セレクトボックスから一つを選択するとマクロが動きます。 2000では、特に問題なく動いています。 これをEXCEL97で試してみると セレクトボックスから一つを選んだだけでは、 マクロが動きません。 たぶん、EXCEL97では セレクトボックスから選らんだ場合を、 Worksheet_Changeとは見なしていないのではないかと思うのですが、 どうすれば、EXCEL97でも マクロが実行されるようになるのでしょうか? (当然、セレクトボックスから選ぶだけですので、 onKey"enter" も使用できません。)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
セレクトボックスというものは シートあるいはフォーム上に配置したコンボボックスやリストボックスのことなのか、あるいはオートコンプリートや入力規則などのことなのか、それともそれ以外の何かなのでしょうか。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
ふと思ったのですが、Changeイベントはセルの内容(値)が(文字通り)変らないと反応しない経験があります。 A1セルに「ABC」と入っていて、その上から「ABC」ENTERを入れても反応しなかったような。これとご質問が関係ないでしょうか。 「入力規則のリスト」であれば、当然セルとリンクしてるはずで、値のないセルで、リストから選択すれば、Change イベントが発生するはずです。97がなくて確認できないですが。95ぐらいから、Changeイベントはあったはずで 全般的に、97のころは完成形態になっていて、内容がお粗末だったとは考えにくい。 >リストの「元の値」にセル範囲指定ではなく、 直接値を区切って入力すれば、・・・ 選択時に WorkSheet_Change として拾えるようです。 素人の私がいうのもおかしいですが、怪しい(それが解決策ではない)感じがします。
お礼
かく私も 97のバグ(?)とは思えず、 どっかの書き方が悪いのだ! とずっと悩んでいたのですが。 とりあえずこれで解決できました。 ありがとうございました。
補足
私が回答するのもなんですが・・・ http://keep-on.com/excelyou/2001lng4/200103/01030048.txt このようなサイトを発見しました。
補足
すいません。入力規則のリストのことです。 他、いろいろ試してみたのですが、 どうやらEXCEL97では リストの「元の値」にセル範囲指定ではなく、 直接値を区切って入力すれば、 選択時に WorkSheet_Change として拾えるようです。 ありがとうございました。