Excel VBA質問箱 IV

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

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


2210 / 13645 ツリー ←次へ | 前へ→

【69281】データの入力規則 ボビー 11/6/17(金) 18:03 質問[未読]
【69282】Re:データの入力規則 ponpon 11/6/17(金) 22:49 発言[未読]
【69369】Re:データの入力規則 ボビー 11/7/2(土) 9:28 お礼[未読]
【69283】Re:データの入力規則 UO3 11/6/18(土) 22:51 発言[未読]
【69284】Re:データの入力規則 ボビー 11/6/19(日) 9:58 回答[未読]
【69285】Re:データの入力規則 UO3 11/6/19(日) 12:54 回答[未読]
【69286】Re:データの入力規則 UO3 11/6/19(日) 18:49 発言[未読]
【69290】Re:データの入力規則 ボビー 11/6/20(月) 18:36 お礼[未読]

【69281】データの入力規則
質問  ボビー  - 11/6/17(金) 18:03 -

引用なし
パスワード
   いつも参考にさせていただいています。

[データーの入力規則]→[設定]→[リスト]を選択しているのですが、リストの値が変更されたときにMacroが起動されるChangeイベントのような機能はありませんか?
漠然とした質問で申し訳ありませんが、宜しくお願いします。

【69282】Re:データの入力規則
発言  ponpon  - 11/6/17(金) 22:49 -

引用なし
パスワード
   ▼ボビー さん:
>いつも参考にさせていただいています。
>
>[データーの入力規則]→[設定]→[リスト]を選択しているのですが、リストの値が変更されたときにMacroが起動されるChangeイベントのような機能はありませんか?
>漠然とした質問で申し訳ありませんが、宜しくお願いします。

意味が間違っているかもしれませんが、
普通に Worksheet_Changeイベントでひろえませんか?

たとえば、A1に入力規則があるとして
こんな感じでひろえますが・・・

Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Count > 1 Then Exit Sub
  If Application.Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
  
  Application.EnableEvents = False
    MsgBox "A"
  Application.EnableEvents = True
End Sub

【69283】Re:データの入力規則
発言  UO3  - 11/6/18(土) 22:51 -

引用なし
パスワード
   ▼ボビー さん:

>リストの値が変更されたときにMacroが起動されるChangeイベントのような機能はありませんか?

・リストがセル範囲で登録してあるとした場合、(A1:A10とか)
 その登録をB1:B10とかに変更した時のイベントですか?
 それとも、A1:A10の中が変更されたときのイベントですか?
・あるいはリストがセル範囲ではなく、たとえば"A","B","C"と登録されていて
 そのリストの登録内容が変更されたときのイベントですか?

【69284】Re:データの入力規則
回答  ボビー  - 11/6/19(日) 9:58 -

引用なし
パスワード
   ▼UO3 さん:
>>リストの値が変更されたときにMacroが起動されるChangeイベントのような機能はありませんか?
>
>・リストがセル範囲で登録してあるとした場合、(A1:A10とか)
> その登録をB1:B10とかに変更した時のイベントですか?
> それとも、A1:A10の中が変更されたときのイベントですか?
>・あるいはリストがセル範囲ではなく、たとえば"A","B","C"と登録されていて
> そのリストの登録内容が変更されたときのイベントですか?

▼UO3 さん:
上記のいずれも違います。
リストがセル範囲で登録してあるとした場合(A1:A10とか)、セル内の値が
A1(あ)がA5(お)に変更された時に起動するようにしたいのです。
説明が悪くて申し訳ありません。宜しくお願いします。

【69285】Re:データの入力規則
回答  UO3  - 11/6/19(日) 12:54 -

引用なし
パスワード
   ▼ボビー さん:

>上記のいずれも違います。
>リストがセル範囲で登録してあるとした場合(A1:A10とか)、セル内の値が
>A1(あ)がA5(お)に変更された時に起動するようにしたいのです。

ということは、私が申し上げたうちの

>> それとも、A1:A10の中が変更されたときのイベントですか?

ですね。

仮に入力規則が C10 に仕掛けてあったとして、そのシートモジュールに以下ではいかがでしょう。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim myList As Range
  If Not Intersect(Target, Range(Mid(Range("C10").Validation.Formula1, 2))) Is Nothing Then
    MsgBox "変更されました"
  End If
End Sub

【69286】Re:データの入力規則
発言  UO3  - 11/6/19(日) 18:49 -

引用なし
パスワード
   ▼ボビー さん:

↑ Dim myList As Range は使いませんでしたので不要です。

【69290】Re:データの入力規則
お礼  ボビー  - 11/6/20(月) 18:36 -

引用なし
パスワード
   ▼UO3 さん、 ponponさん:
返信ありがとうございます。

現在、長期出張中のため教えていただいた内容を検証する事が少し先になります。
検証次第返信いたします。
ありがとうございました。

【69369】Re:データの入力規則
お礼  ボビー  - 11/7/2(土) 9:28 -

引用なし
パスワード
   ▼ponpon さん:▼UO3 ん:

検証しました。
期待通りの処理が作成できました。

ありがとうございました。

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