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

こんにちは、エクセル2010を使っています。

自動で更新するデータがあり、その更新した時に背景色や文字色を点滅させたり出来ますか?

例えば A1セルの値が更新したら 背景色を一瞬黒にするとかそんな感じです、

詳しい方、よろしくお願いいたします!

A 回答 (5件)

No3です



>エラーの内容は このブックではマクロが使用できないか、
>またはすべてのマクロが無効になっている可能性があります
> と言うエラーです。
マクロのテストは、普通の「マクロ使用可能」なブックで行ってください。

特殊なブックの場合はその特殊性に対応する必要があるかも知れません。
(内容が不明なので、対応可能なのかどうかも分かりませんが…)
    • good
    • 0
この回答へのお礼

そうなんですよねえ・・・

試しに空白のxlsmで試してみたんですけど、やはり同じエラーが起きてしまうんです。
試しに他の標準モジュールに書くマクロを試してみたんですが、同じようにエラーが出ます。

ボタンクリックのマクロは動作するんですが・・・

ちなみにマクロ有効ブックにはもちろんしてあって、他にも色々試してみたんですが、今のところこのエラーで前に進めない感じです。

MALSY Tips マクロが実行できない時に確認すべきExcelの設定
https://www.mdis.co.jp/service/malsy/faq/tips_id …

回答いただきありがとうございました。

お礼日時:2019/11/27 15:43

マクロを有効にするは以下を確認してみて下さい。


https://kokodane.com/2010/excel2010macro_01.htm
https://kokodane.com/2010/excel2010macro_03.htm
    • good
    • 0

No2です



>提示頂いたコードを実行する数回点滅してとエラーが出てしまうようです。
値が直接変更される場合は、更新が起こると4回点滅します。
セル値が関数式の場合は、(エクセル側の計算が行われるのと、計算結果がディスプレイに反映される/されないの関係からか)目視できるのは3回の点滅になるようです。

>エラーが出てしまうようです。
こちらの環境では再現しないのですが、どの行でどのようなエラーになっているでしょうか?
その際に、何か別のマクロを実行していたり、あるいはマクロが動作する原因となるようなイベントを発生させていますか?
エラーの原因をあまり思いつけないのですが・・・

>点滅するセルの対象をD3~D10、各々に出来れば嬉しいのですが
例示のものはCell(1,1) (=A1セル)を直接記述していますが、チェックなどの処理に関しては同じなので、D3~D10セルをループしながらひとつずつチェックするように変えれば良いでしょう。
例示のマクロは対象がA1セルだけなので、「前の値を記憶しておく変数」を単独変数にしてありますが、対象が複数セルになるのならば配列等で記憶しておく必要がでてくることでしょう。
    • good
    • 0
この回答へのお礼

エラーの内容は このブックではマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります と言うエラーです。

ボタンのマクロはコピー&ペーストの簡単な物でボタンクリックからの動作です。

ループに関しては自分では出来ないので教えてくれる方を探した感じです。

お礼日時:2019/11/26 20:06

こんにちは



普通に考えれば、Changeイベント等で更新を捉えて点滅させれば良さそうですが、該当セルに計算式が設定されていて間接的に値が変わるような場合は、Changeイベントが発生しません。
ですので、
>自動で更新するデータがあり
の更新の方法にどのような可能性があるのかによって、対処が変わってくることが考えられます。


ご質問文からではよくわからないので、かなり非効率的ではありますが、セルの値を監視する方法での一例を以下に示しておきます。
(ずっと監視しているので、無駄にプログラムが動ことと、それが全体のパフォーマンスにも影響するという意味から「非効率的」です)

※ スタート時に、setWatcherを実行します。
※ 停止するには、stopWatcherを実行します。
※ 無駄を省くため、監視の間隔などは実態に即して設定するのが宜しいでしょう。

(以下を標準モジュールへ)
Private sn As String, f As Boolean, v
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

Sub setWatcher()
 sn = ActiveSheet.Name
 v = Cells(1, 1).Value
 f = True
 Call observe
End Sub

Sub stopWatcher()
 f = False
End Sub

Sub observe()
 Dim i, c, col
 Set c = ThisWorkbook.Worksheets(sn).Cells(1, 1)
 If c.Value <> v Then
  col = c.Interior.Color
  v = c.Value
  For i = 1 To 8
   If i Mod 2 Then c.Interior.Color = 0 Else c.Interior.Color = col
   DoEvents
   Sleep 200
  Next i
 End If
 If f Then Application.OnTime Now + TimeValue("0:0:1"), "observe"
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ボタンクリック有効のマクロのブックなのですが、提示頂いたコードを実行する数回点滅してとエラーが出てしまうようです。

あと、もしよろしければ点滅するセルの対象をD3~D10 各々に出来れば嬉しいのですが。

よろしくお願いします。

お礼日時:2019/11/26 16:43

更新前のデータを参照できれば可能だと思いますが、数値が変わらない部分も同じ値を上書きしている場合は


というか自動で更新するデータというのが一般的じゃなさすぎて断言できない
    • good
    • 0

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