• ベストアンサー

EXCEL97でも動くようにするには?

EXCEL2000を使用して Private Sub Worksheet_Change(ByVal Target As Range) を使用してセルの値が変更されたら動くマクロを作成しました。 セルには直接値を入力するものではなく、 セレクトボックスの中からひとつを選択するようになっています。 セレクトボックスから一つを選択するとマクロが動きます。 2000では、特に問題なく動いています。 これをEXCEL97で試してみると セレクトボックスから一つを選んだだけでは、 マクロが動きません。 たぶん、EXCEL97では セレクトボックスから選らんだ場合を、 Worksheet_Changeとは見なしていないのではないかと思うのですが、 どうすれば、EXCEL97でも マクロが実行されるようになるのでしょうか? (当然、セレクトボックスから選ぶだけですので、  onKey"enter" も使用できません。)

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

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

セレクトボックスというものは シートあるいはフォーム上に配置したコンボボックスやリストボックスのことなのか、あるいはオートコンプリートや入力規則などのことなのか、それともそれ以外の何かなのでしょうか。

ssm3u
質問者

補足

すいません。入力規則のリストのことです。 他、いろいろ試してみたのですが、 どうやらEXCEL97では リストの「元の値」にセル範囲指定ではなく、 直接値を区切って入力すれば、 選択時に WorkSheet_Change として拾えるようです。 ありがとうございました。

その他の回答 (1)

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

ふと思ったのですが、Changeイベントはセルの内容(値)が(文字通り)変らないと反応しない経験があります。 A1セルに「ABC」と入っていて、その上から「ABC」ENTERを入れても反応しなかったような。これとご質問が関係ないでしょうか。 「入力規則のリスト」であれば、当然セルとリンクしてるはずで、値のないセルで、リストから選択すれば、Change イベントが発生するはずです。97がなくて確認できないですが。95ぐらいから、Changeイベントはあったはずで 全般的に、97のころは完成形態になっていて、内容がお粗末だったとは考えにくい。 >リストの「元の値」にセル範囲指定ではなく、 直接値を区切って入力すれば、・・・ 選択時に WorkSheet_Change として拾えるようです。 素人の私がいうのもおかしいですが、怪しい(それが解決策ではない)感じがします。

ssm3u
質問者

お礼

かく私も 97のバグ(?)とは思えず、 どっかの書き方が悪いのだ! とずっと悩んでいたのですが。 とりあえずこれで解決できました。 ありがとうございました。

ssm3u
質問者

補足

私が回答するのもなんですが・・・ http://keep-on.com/excelyou/2001lng4/200103/01030048.txt このようなサイトを発見しました。

関連するQ&A