アプリ版:「スタンプのみでお礼する」機能のリリースについて

Worksheet_Calculate() 

ですが、A:4 から h:4 だけ 反応する。 それ以外は、 Exet Sub で Calculate を 抜ける。

この範囲指定の方法は無いでしょうか

時間なら 下記で事足りるのですが
If Format(Time, "hh:nn:ss") < Format("9:00:00", "hh:nn:ss") And Format(Time, "hh:nn:ss") Format("3:00:00", "hh:nn:ss") Then
Exit Sub
End If

A 回答 (2件)

こんばんは


ブック起動時にA4~H4の値をグローバル変数に格納してCalculateイベント発生時に比較しては如何でしょうか
'<<ThisWorkBookモジュール>>
Option Explicit
Private Sub Workbook_Open()
v = Worksheets("Sheet1").Range("A4:H4").Value
End Sub
'<<標準モジュール>>
Option Explicit
Public v As Variant
'<<シートモジュール>>
Private Sub Worksheet_Calculate()
  Dim i As Long, flg As Boolean

  For i = 1 To 8
    If Range("A4:H4").Item(i).Value <> v(1, i) Then
      MsgBox Range("A4:H4").Item(i).Address & " に変化がありました。"
    End If
  Next
  If flg = True Then v = Range("A4:H4").Value
End Sub
    • good
    • 0

> A:4 から h:4 



よくわかりませんがA4セルからH4セルの範囲ということ?
つまりRange("A4:H4")の範囲で発生したCalculateイベントだけをトリガーにしたい?

通常の方法(該当のシートのCalculateイベント)ではそういう捕らえ方はできないと思います。
ただ、裏ワザというか、抜け道が考えられないわけではありません。

新しいシートを用意します。
仮にトリガーにするRange("A4:H4")があるシートをSheet1だとすると、新しく用意したシートに
=Sheet1!A4
=Sheet1!B5
=Sheet1!C4
中略
=Sheet1!G4
=Sheet1!H4
と入力し、それ以外の式は書きません。
その上で、この新しいシートのシートモジュールにCalculateイベントのマクロを書けばいかがでしょうか?
    • good
    • 0
この回答へのお礼

へそ!

やってみます。
基本 Changeで拾うべきなのですが、なぜか WEB配信データでChangeが反応しないのです。(そうしたものらいしです)

お礼日時:2012/09/16 08:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています