• ベストアンサー
  • すぐに回答を!

エクセルのマクロ

エクセルのマクロでわからないことがあり質問なんですが A1セルの数値がリアルタイムに更新されていて このA1セルの数値が更新されるたびに B1とB2にA1セルの最新の値を交互にコピーしていくマクロを 作りたいんですがうまくいきません。 例としては A1に1と表示→B1に1と表示 A1に7と表示→B2に7と表示 A1に18と表示→B1に18と表示 これをA1セルが更新され続ける限り繰り返しすマクロです。 どなたか教えていただけるとありがたいです。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数34
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんばんは。 それは、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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

助かりました。ありがとうございました。 自分でできるように勉強します。

関連するQ&A

  • エクセルのマクロ

    仕事の都合で早急に仕上げなければならないことがあり 困っています。 内容としては エクセルのA1セルに0~無限までの数値がランダムに 繰り返し表示されるとした場合で (例えばA1セルに0と表示された後、数秒たつと10000と表示されて、 また数秒たつと3000と表示されて、 また数秒たつと0になったりをA1セルは繰り返します。 A1に表示される数値も更新時間も完全にランダムです。) 1以上の数値がA1セルに表示された場合のみ その数値をB1セルに抜き出し、更新毎にB1セルで合計し続ける。 (例えばA1に10と表示されるとB1に10と表示し その後A1に100と表示されるとB1に110と表示 その後A1に300と表示されるとB1に410と表示) というマクロを作りたいのですが完全に手詰まりになってしまっています・・・ どなたか詳しい方いらっしゃいましたら申し訳ございませんが 知恵を貸していただけないでしょうか? よろしくお願いいたします。

  • Excelのセルに更新があれば、他のセルに渡したい

    1.更新されたExcelのセル内の数値をとりだしたい。 2.其のデータを順にセルに渡していきたい。 Excel にて、DDEサーバからデータをうけとっています。 セルA1に受け取ったデータは1分間に何度も更新されます。 其のデータを更新されるたびにB1,B2,B3,B4,・・・のセルに値を 入れていきたいのですがうまくできません。 その理由は、A1セル内の式をコピーしてしまうからです。 A1のセルで更新された「数値のみ」をB1,B2,B3,B4,・・・のセルに コピーするにはどうすればよいでしょうか?

  • Excel マクロでスピンボタンの操作

    A1とB1のセルには、それぞれ数値が入力されています。 その下(A2とB2)にはA1とB1の値を使って計算された値があります。 A1とB1の値はスピンボタンを使って1ずつ値が大きくなったり小さくなったりします。 そして、 A2とB2の値の大小を比べて、 ・A2が小さければ、A1の値を1大きくする ・B2が小さければ、B1の値を1大きくする ・等しければ、何もしない ということをしたいです。 マクロを組むしかないと思ったのですが、どのようにやれば良いのでしょうか? Excelはそこそこできますが、マクロはほとんどわかりません。 スピンボタンを使わなくても、同じようなことが自動でできれば構いません。 よろしくお願いしいます。

その他の回答 (1)

  • 回答No.1

セル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の詳しい説明が書いてなくて困っていたのでとても参考になりました。

関連するQ&A

  • エクセルで次のようなことは、できないでしょうか。

    エクセルで次のようなことは、できないでしょうか。 マクロは使い方が解らないので使わないでやりたいです。 1、「A1」のセルに「4月」を入力して「A2」のセルに「1000」を入力した場合は 「B1」の値が「1000」となる。[「B1」に=IF(A1="4月",A2,"")] 2、「A1」のセルに「5月」を入力して「A2」のセルに「2000」を入力した場合は 「B2」の値が「2000」となる。[「B2」に=IF(A1="5月",A2,"")] 3、ただし2、の「5月」の場合でも 「B1」の値は「1000」を、そのまま保持したい。 上記3、の方法がわかりません。

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

  • エクセルでマクロで別のセルに

    関数を別のセルに貼り付けると自動的にセル番号が変わりますが、 マクロではどうすればいいでしょうか? 例えば、B1で「=a1」とあるのをコピーし、B2に貼り付けると「=a2」となります。 これをB1にあるマクロをコピーしB2に貼り付けてもマクロ内のセル番号は変わりません。 この場合、どうすればいいでしょうか?

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセル関数について

    セルA24~A150の数値が隣同士のB24~B150の数値と比べてBのセルの値が大きい場合はBのセルを赤色に、小さければ黒色になるような関数式ができるでしょうか?ただしBのセルには数式が入っています。(Bのセルの数式=AVERAGE($A1:$A24)+STDEVP(A1:A24)*3) 出来るなら入力式を教えてください。簡単なマクロでもかまいません。

  • エクセルのマクロを教えてください。

    初心者です。 エクセルで次のような操作をしたいのです。 ブック1のセルA1に入っている値の新しいブックを作る。 その新しく作ったブックのセルB1からB10へ元からあるブックの セルB1からB10までの値をコピー、貼り付けする。 ボタンを押したら、上記の様な動作をするにはどうしたら良いでしょうか? なお、ブック1のセルA1の値はその度、変化するので、新しく作られる ブック名もその度変わるようにしたいのです。 宜しくお願いします。

  • エクセルのコピーについて

    エクセルで数式を残すことなく値のみコピーしたいのですが、 セルA1の内容をセルB1にも同じように表示させる場合、 B1に「=A1」と入力すればよいかと思いますが、 「=A1」等の数式を残すことなく、 B1に値のみ表示させることはできますでしょうか。 例えばですが、 C1に数式でA1に値がある場合は、 B1にも同じ値を入れるみたいな、 C1には数式は入っていますが、 B1には値のみというようなことができたらと、 お手数かけまして申し訳ございませんが、 どうぞよろしくお願いいたします。

  • エクセル/マクロについて

    例えば、 A1のセルに株価をリアルタイムで表示させています。(楽天証券リアルタイム・スプレッドシート利用) B1のセルに売買の目安として"1,501"(円)と入力しておきます。 A1の値は相場時間中つねに変動するのですが、一度でもB1の値である"1,501"をつけた場合に、C1のセルに"Y"と表示するようなマクロはどう組めば良いのでしょうか? あるいは、マクロを使う以外の方法があるのなら教えてください。 よろしくお願いします!

  • エクセル 12飛びのセル番号のポイント

    教えてください エクセルのセルにたとえば A1=1 A13=2 A25=3 等入っているときに B1=(A1) (A1)はA1の内容この場合1が入る B2=(A13) B3=(A25) 等入れたいときはどうすれば良いのですか。 おしえてください。 B1に=A1とすると A1の値が入りますが それの数式をこぴーすると B2には=A2となりますこれをA13にしたいのです。 よろしくお願いします。

  • エクセルのマクロ

    セルA1に、a2からa90までの任意の文字を入力した後にマクロを実行します。 セルA1にa7と入力されている時はセルB1にa6と表示され、セルA1にa86と入力されている時はセルB1にa85と表示されるようなマクロを教えてもらいたいのですが。 B1は必ずA1の数字の部分が1つ少なくなるということです。