- ベストアンサー
エクセルのマクロ
エクセルのマクロでわからないことがあり質問なんですが A1セルの数値がリアルタイムに更新されていて このA1セルの数値が更新されるたびに B1とB2にA1セルの最新の値を交互にコピーしていくマクロを 作りたいんですがうまくいきません。 例としては A1に1と表示→B1に1と表示 A1に7と表示→B2に7と表示 A1に18と表示→B1に18と表示 これをA1セルが更新され続ける限り繰り返しすマクロです。 どなたか教えていただけるとありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 それは、DDE やOLEでデータをインポートしているのではありませんか? シートタブを右クリックして、「コードの表示」で以下を貼り付けます。 次に、ワークシートのどこでもよいので、空いたセルに、=NOW()と入れます。 '------------------------------------------- Private Sub Worksheet_Calculate() Static flg As Boolean Application.EnableEvents = False Range("B1").Offset(Abs(CInt(flg)), 0).Value = Range("A1").Value Application.EnableEvents = True flg = Not flg End Sub
その他の回答 (1)
- hige_082
- ベストアンサー率50% (379/747)
セルB1とB2のどっちが最新の値かを判断する条件が必要です 'セルA2を使用して Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If Range("A2").Value = 2 Then Range("B2").Value = Range("A1").Value Range("A2").Value = 1 Else Range("B1").Value = Range("A1").Value Range("A2").Value = 2 End If End Sub 'セルを使用するのがイヤなら Dim z As Integer Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If z = 2 Then Range("B2").Value = Range("A1").Value z = 1 Else Range("B1").Value = Range("A1").Value z = 2 End If End Sub こんな感じでよい?
お礼
ありがとうございました。参考書読んでも Ifの詳しい説明が書いてなくて困っていたのでとても参考になりました。
お礼
助かりました。ありがとうございました。 自分でできるように勉強します。