Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9413 / 13644 ツリー ←次へ | 前へ→

【27419】セルチェンジの無限ループ・・・。 HITSUJI 05/8/8(月) 20:35 質問[未読]
【27422】Re:セルチェンジの無限ループ・・・。 りん 05/8/8(月) 21:22 回答[未読]
【27503】Re:セルチェンジの無限ループ・・・。 HITSUJI 05/8/10(水) 15:02 お礼[未読]

【27419】セルチェンジの無限ループ・・・。
質問  HITSUJI  - 05/8/8(月) 20:35 -

引用なし
パスワード
   どなたか教えてくださいm(__)m。

あるセルに制限をかけたいのです。
例えば、ある1つのセルに「みかん、りんご、バナナ」の
どれかしか入力されたくて、「かぼちゃ」と
入力されたら、エラーではじきたいのです。
また、「みかん」と書かれたら、横のセルに自動的に
「100円」や、またさらにその横のセルに「○×産」・・・
といった風に表示させたいのです。

今は
Workbook_SheetChangeイベント関数で
セルのカーソル位置が変わった時に
前にカーソルのあったセルのデータを調べるように
作成してます。
ところが、「みかん」の横のセルに自動表示させようと
しているところで無限ループになってしまっているようなのです(泣)。
このようなことを回避方法方法を教えていただきたいのです。
分りにくい説明ですみません。

どうぞ宜しくお願いいたしますm(__)m。

【27422】Re:セルチェンジの無限ループ・・・。
回答  りん E-MAIL  - 05/8/8(月) 21:22 -

引用なし
パスワード
   HITSUJI さん、こんばんわ。

>Workbook_SheetChangeイベント関数で
>セルのカーソル位置が変わった時に
>前にカーソルのあったセルのデータを調べるように
>作成してます。
 カーソル位置が変わったら・・・は、ChangeではなくSelectionChangeイベントです。が、やりたい事からするとChangeイベント(セルの中身が変わったら発生)がいいようです。
 

>ところが、「みかん」の横のセルに自動表示させようと
>しているところで無限ループになってしまっているようなのです(泣)。
 ここでもChangeイベントが起きているからです。

EnableEventsプロパティでヘルプを見てね。
シートのイベント例
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  '単一セルならば何を入れても●にする
  If Target.Count = 1 Then
   Target.Value = "●"
  End If
  Application.EnableEvents = True
End Sub

【27503】Re:セルチェンジの無限ループ・・・。
お礼  HITSUJI  - 05/8/10(水) 15:02 -

引用なし
パスワード
   りん さん:
ご回答有り難うございます(*^^*)。
EnableEvents = False
で無限ループを回避できました!!
ありがとうございましたm(__)m。

9413 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free