Excel VBA質問箱 IV

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

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


8064 / 13646 ツリー ←次へ | 前へ→

【35249】メッセージボックスの表示 バカボン 06/2/24(金) 13:06 質問[未読]
【35250】Re:メッセージボックスの表示 かみちゃん 06/2/24(金) 13:12 回答[未読]
【35261】Re:メッセージボックスの表示 バカボン 06/2/24(金) 14:52 お礼[未読]
【35262】Re:メッセージボックスの表示 かみちゃん 06/2/24(金) 14:52 発言[未読]
【35337】Re:メッセージボックスの表示 バカボン 06/2/27(月) 11:33 お礼[未読]

【35249】メッセージボックスの表示
質問  バカボン  - 06/2/24(金) 13:06 -

引用なし
パスワード
   ・特定のセルの値が変化(変更)した時、メッセージボックスが表示されるようにしたい。シート全体におけるセルの移動時のメッセージボックス表示の方法は判るのですが.....宜しくお願い致します。

【35250】Re:メッセージボックスの表示
回答  かみちゃん  - 06/2/24(金) 13:12 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>・特定のセルの値が変化(変更)した時、メッセージボックスが表示されるようにしたい。

Worksheet_Changeでできると思います。
以下のようなコードをシートモジュールに記述してください。
以下のコードでは、特定のセルがA1からA10の場合です。

Private Sub Worksheet_Change(ByVal Target As Range)
 With Application
  If .Intersect(Range("A1:A10"), Target) Is Nothing Then Exit Sub
  MsgBox Target.Address & " が変更されました"
 End With
End Sub

【35261】Re:メッセージボックスの表示
お礼  バカボン  - 06/2/24(金) 14:52 -

引用なし
パスワード
   ・早速のレスで無事解決しました。ありがとうございます。
 ちなみに、このWorksheet_Changeのプロシージャは、そのワークシートへ保存
 して良いのですよね?
 同じワークシートへ、コントロールのボタンを配置し、そのボタンからもう1
 つのマクロを動作させたいのですが、うまく動作しません。
 しかも、そのマクロはセルのデータを消去させるマクロなので、その消去マク
 ロが動作する度に、セル内容変更マクロも同時に動作してしまいます....

【35262】Re:メッセージボックスの表示
発言  かみちゃん  - 06/2/24(金) 14:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> ちなみに、このWorksheet_Changeのプロシージャは、そのワークシートへ保存
> して良いのですよね?

「保存して良い」というより「記述しなければならない」という表現が正しいと思います。

> 同じワークシートへ、別にコントロールのボタンを配置し、そのボタンからも
> う1つのマクロを動作させたいのですが、うまく動作しません。

どのようなコードになっていて、どのように「うまくいかない」のかわからないので、何も申し上げられません。

> しかも、そのマクロはセルのデータを消去させるマクロなので、その消去マク
> ロが動作する度に、セル内容変更によるメッセージボックス表示マクロも同時
> に動作してしまいます....

Worksheet_Changeを過去ログで検索するといろいろ出てくると思いますが、
以下のような感じにするといいと思います。

Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
  If .Count > 1 Then Exit Sub '変更されたセルが1個でない場合は処理しない
  If IsEmpty(.Value) Then Exit Sub '変更されたセルの値がない場合(クリアされた)処理しない
  If Application.Intersect(Range("A1:A10"), Target) Is Nothing Then Exit Sub
  MsgBox .Address & " が変更されました"
 End With
End Sub

【35337】Re:メッセージボックスの表示
お礼  バカボン  - 06/2/27(月) 11:33 -

引用なし
パスワード
   かみちゃん様へ

度々の質問への対処、ありがとうございました。
         ↓
>同じワークシートへ、別にコントロールのボタンを配置し、そのボタンからも
>う1つのマクロを動作させたいのですが、うまく動作しません。
         ↓
>どのようなコードになっていて、どのように「うまくいかない」のかわからな
>いので、何も申し上げられません。
         ↓
すみません....おっしゃる通りで....
結局、ご教示頂いた記述を利用して下記のように記述し解決しました。

Private Sub CommandButton1_Click()
Sheets("○○○").Activate
'GoSub DrawData
ActiveSheet.Range("O9:O12").Select
Selection.ClearContents
ActiveSheet.Range("O15:P15").Select
Selection.ClearContents
R = MsgBox("○○○", 48, "○○○")
End Sub
-----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
  If .Count > 1 Then Exit Sub
  End With
 With Application
  If .Intersect(Range("A1:A10"), Target) Is Nothing Then Exit Sub
  MsgBox .Address & " ○○○"
 End With
End Sub

...何しろVBAを扱うのは10年ぶり(Excel5.0時代)で....
重ねてありがとうございました。

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