Excel VBA質問箱 IV

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

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


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

【69977】セルの値によってマクロを走らせたい 目指せマクロの達人 11/10/2(日) 23:05 質問[未読]
【69978】Re:セルの値によってマクロを走らせたい よろずや 11/10/3(月) 0:24 回答[未読]
【69979】Re:セルの値によってマクロを走らせたい 目指せマクロの達人 11/10/3(月) 15:50 お礼[未読]
【69982】Re:セルの値によってマクロを走らせたい 目指せマクロの達人 11/10/4(火) 22:12 発言[未読]
【69984】Re:セルの値によってマクロを走らせたい よろずや 11/10/5(水) 0:39 回答[未読]
【69988】Re:セルの値によってマクロを走らせたい 目指せマクロの達人 11/10/5(水) 10:20 お礼[未読]

【69977】セルの値によってマクロを走らせたい
質問  目指せマクロの達人 E-MAIL  - 11/10/2(日) 23:05 -

引用なし
パスワード
   VBA初心者、一ヶ月目です、
ワークシートを開いて作業をしているとき、特定のセルの値がそのつど変わりますが、ある値になったときだけマクロを走らせたいのですがお知恵を拝借いたしたく。 イベントの条件にChangeがあってそのセル(範囲)の値に変化があったときに走らせるというのがありますが、その変化の内容を絞り込みたいのです。

【69978】Re:セルの値によってマクロを走らせたい
回答  よろずや  - 11/10/3(月) 0:24 -

引用なし
パスワード
   ▼目指せマクロの達人 さん:
>VBA初心者、一ヶ月目です、
>ワークシートを開いて作業をしているとき、特定のセルの値がそのつど変わりますが、ある値になったときだけマクロを走らせたいのですがお知恵を拝借いたしたく。 イベントの条件にChangeがあってそのセル(範囲)の値に変化があったときに走らせるというのがありますが、その変化の内容を絞り込みたいのです。

「特定の値のときだけ走らせる」ことはできません。
でも「特定の値以外のときは処理を中断する」ことはできます。

【69979】Re:セルの値によってマクロを走らせたい
お礼  目指せマクロの達人 E-MAIL  - 11/10/3(月) 15:50 -

引用なし
パスワード
   ▼よろずや さん:
簡潔明瞭なご教示ありがとうございました。
こんな形で達成できました!

Private Sub Worksheet_Change(ByVal Target As Range)
'
'セル"P8"の値がゼロに変わったら完成とみなし、終了サブ(finished)を起動する
'
If Intersect(Target, Range("P8")) Is Nothing Then Exit Sub
If Range("P8").Value <> 0 Then Exit Sub
finished
End Sub

【69982】Re:セルの値によってマクロを走らせたい
発言  目指せマクロの達人 E-MAIL  - 11/10/4(火) 22:12 -

引用なし
パスワード
   自己レスです、

ここを見られる多くの方々には常識でしょうが、新人は大いに焦りましたので補足します。
下の例で、イベントを起こすきっかけは、厳密に言うと、「セルP8の値がゼロに書き換えられてリターンキーが押されたとき」であって、セルの内容が関数式になっていて「その式の計算結果がゼロになる」だけではイベントは起こりませんでした。 

【69984】Re:セルの値によってマクロを走らせたい
回答  よろずや  - 11/10/5(水) 0:39 -

引用なし
パスワード
   >「その式の計算結果がゼロになる」だけではイベントは起こりませんでした。 

Private Sub Worksheet_Calculate()
のイベントが起こります。
ただし、どのセルが計算されたのかは判りません。

【69988】Re:セルの値によってマクロを走らせたい
お礼  目指せマクロの達人 E-MAIL  - 11/10/5(水) 10:20 -

引用なし
パスワード
   おかげさまでずいぶんとすっきりしました
'
'セル"P8"の値が計算の結果、ゼロに変わったら完成とみなし、終了サブ(finished)を起動する
'

Private Sub Worksheet_Calculate()
  If Cells("P8") = 0 Then
    finished
  End If
End Sub

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