• ベストアンサー

エクセルのマクロで教えてください

エクセルのマクロで教えてください A1に入っている値が変化するごとにD列に順にその変化を出力していきたいのですが マクロではどのようにしたらいいでしょうか A1には=C1+C2というような計算式が入っていてC2の数字を変えて計算結果が変わるごとに出力したいのですが

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

入力の対象をC1に限定するなら Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Address(0, 0) <> "C1" Then Exit Sub   Cells(Rows.Count, "D").End(xlUp).Offset(1).Value = Range("A1").Value End Sub C1、C2ともに対象とするなら Private Sub Worksheet_Change(ByVal Target As Range)   If Intersect(Target, Range("C1:C2")) Is Nothing Then Exit Sub   Cells(Rows.Count, "D").End(xlUp).Offset(1).Value = Range("A1").Value End Sub いづれも、そうしたいワークシートのシートタブをクリックし、コードの表示を選び、出てきた白い画面に、どちらか一方のコードをコピペしてください。

bobo21
質問者

お礼

ありがとうございますできました!^0^

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

こういうのはマクロのイベントを使わないと出来ません。VBAをある程度わかってからの課題です。 エクセルでは、入力する場所を(異形ずつ下など規則正しく設定し、結果側の数式を式の複写(または特別な食う風した式)で変化させるのです。 このへんはエクセルの利用方法の特徴なので、ニーズがあるとき、どちらを採るか良く考えないといけません。 質問のようなのは、エクセルの特賞を良くわかってない初心者的発想です。 いろんな意味でプロセスを記録するような使い方はあまり適していない。 特にChangeイベントでやると入力した元データが残らないためです。両者を残すなら、標準ではFormなどを設計します。 エクセルはデータをシートに一旦記録して、それからどれらのデータを元に計算式で計算するのが基本です。 場合によってはデーターフォームのフォームの入力でも良いかもしれない(毎度のセル選択確認が面倒とか)。 Changeイベントは、操作者が入力について色々やると対処が難しく、他者が使う(入力する)ようなものでは、対処プログラムが初心者には難しいいと思います。 ーー VBAでやる場合は数式は、VBAの中に設定する場合が大多い。 その場合は計算結果を設定するセルは、セルに式が残りません。

全文を見る
すると、全ての回答が全文表示されます。
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

Change イベントを利用すれば、実現可能です。 こちらを参考にして下さい。 http://www9.plala.or.jp/siouxsie/date06.html

参考URL:
http://www9.plala.or.jp/siouxsie/date06.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセルのマクロの繰り返し

    よろしくお願いします。 「A1からA5までの数値を数字の大きい順に並び替えして、 そのA1からA5のデーターをC1からC5にコピーする。 次にB列に1列挿入する。」 ここまではエクセルのマクロ機能で出来ましたが それを100回くり返すコードというか、 コードの書き方、仕方がわかりません。 このばあいどのようなコードでしょうか

  • エクセルかマクロで・・・

    エクセル関数かマクロで作りたいのですが、   A列に数字B列に個数を入力していくとします。   A列の数字をB列の個数分だけC列に表示したいのです。  例えばA1に300、B1に5、A2に500、B2に6と入力した場合、   C1からC5に300、C6からC11に500、と表示するにはどうしたらよい  でしょうか。 よろしくお願いいたします。

  • excelのVBAマクロ教えてください。

    エクセルのガントチャート。 例・横軸には1~20までの数字が入っていて縦軸は自由に数字を入れれるセル(D4と置く。) D4に数字で変化するガントチャート。D4に21以上の値を入れた時にその前に入力した値に戻す(ガントチャートは変化しない)状態にしたい。それをVBAマクロで組みたいのですがどうすればいいですか??至急お願いします。

  • マクロについて

    マクロで(a-b)^2の計算を行いたいのですが、 どう書けば良いのか分かりません。 (A1-B1)^2、(A1-C1)^2、(A1-D1)^2、・・・・・ (A2-B2)^2、(A2-C2)^2、・・・・・ (A3-B3)^2、・・・・・ と、 250行、250列のデータを同じシートに出力したいのですが、 どのように行えばよいのでしょうか。 どなたか、教えていただけませんか。 宜しくお願いいたします。

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

    エクセルのマクロについての質問です。 長文申し訳ございません。 Excelマクロが何度作り直してもうまく作動せず非常に困っております。 (1)ファイルAのシート1のDB列3行目に1の値をいれます。 (2)ファイルAのDC列172行目の値をファイルBのシート名が「1」のシートのD列4行目に入れます。 (3)ファイルAのDC列2733行目の値をファイルBのシート名が「1」のシートのD列6行目に入れます。 (4)ファイルAのDC列3128行目の値をファイルBのシート名が「1」のシートのD列7行目に入れます。 (5)ファイルAのシート1のDB列3行目に1.2の値をいれます。 (6)ファイルAのDC列172行目の値をファイルBのシート名が「1.2」のシートのD列4行目に入れます。 (7)ファイルAのDC列2733行目の値をファイルBのシート名が「1.2」のシートのD列6行目に入れます。 (8)ファイルAのDC列3128行目の値をファイルBのシート名が「1.2」のシートのD列7行目に入れます。 (9)以上のようにファイルAのシート1のDB列3行目に入れる値を0.2ずつ増やしていき、その値に対応したファイルBのシートに上記のように値を入れていくという動作を20まで繰り返す。 以上のようなマクロを作る事は可能でしょうか? マクロについて勉強はしているのですが上手く使いこなせず苦労しております。 長文の質問で大変申し訳ございませんがよろしければ皆さまのお知恵をお貸しください。 宜しくお願い致します。

  • エクセル マクロで行き詰まりました。助けて・・・

    エクセル初心者です。初心者にも関わらず、マクロに挑戦して壁にぶち当たりました。やはり限界です。教えてください! <やりたい事> SHEET1に必要項目を入力してから計算開始ボタンを押す。計算結果を別シートに表示させると同時に、ボタンを押す毎にその計算結果を履歴として積み重ねる。 今回の計算結果    A     B    C    D    E 1       四月   20   30   40  2   9  履歴    10  2回前   六月   40   30   40  11  1回前   五月    30   40   50 12  今回   四月   20    30   40 うまく説明できませんが、数式セルを値だけコピーして、ボタンを押す度に自動改行しながらペーストをするというマクロなんだと思うんですが・・・。 非常に困っています。どうか宜しくお願いします。

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

    エクセルにてマクロを組もうと色々調べているのですが、 どうしてもわからないため教えていただきたいことがあります。 現在、マクロを実行すると固有の文字をアクティブセルに挿入するというマクロを作成しました。 このマクロを少し改造したいのですが、A1とB1に=のものが入っている行の特定の列のセルに固有の文字を挿入するという風にしたいです。 例えば、Aの列にはA1には1、A2には2という風に順に10間での数字が入っていて、 B1には9が入っている場合、C9のセルに固有の文字を挿入するという感じです。 B1を7に変えた場合、C7に固有の文字が挿入されるという感じにしたいです。 質問の仕方が下手でわかりにくいかも知れませんがお知恵をお貸しください。 よろしくお願いします。

  • かんたんなエクセルマクロを教えてください!

    エクセルマクロを勉強しはじめたばかりのものです。 列にある、様々な文字列で、同じ名前があったときに、 その個数を出すようにするにはどうしたらよいでしょうか? 【例】   C 1名前 2りんご 3メロン 4いちご 5りんご 6レモン 7メロン 8すいか 9メロン 10空白 Cの列に様々な名前の品物があります。そのときに、行の2~9(9はもっと長いときがあり、制限のないものとします) の中の文字列で、同じものがあったときに、その名前と個数を出すようにしたいのです。(C1は見出しなので省きます) 上記の例でしたら、「りんご」が2個、「メロン」が3個あります。2個、3個という数えた個数はB列の同じ場所の一番上に上書きで 出す形で結果を表示したいと思います。例でいえば、「りんご」は2個だったので、B2に「2」と出力。メロンは3個だったので、 B3に「3」と出力させたいのです(B列にはすでに他の文字列が入っています。それを数値で上書きします。) C列をたどって、同じ文字がないときには、「同じものはありません」とメッセージボックスで出力するようなマクロです。 例ではC9までですが、このケースではC10は空白になります。C100まであったときにはC101が空白です。 こんなカンタンなのもわからないので、ぜひお教えいただけますでしょうか?できるだけ短いものが嬉しいです。使っているエクセルはおはずかしながらEXCEL97です。 よろしくお願いします。

  • ■ エクセルのマクロで出来ますか?

    エクセルマクロの初心者です。 現在、業務で以下の様な表を作成し、請求書の発行を行っています。 「sheet1」A列のNo.を「sheet2」のA列(例えばセルA1)に入力すると VLOOKUP関数で必要項目が請求書の雛形に表示される仕組です。 複数行を抽出する場合は、複数のNo.(例: 1,3,10)を手入力(例: A1,A2,A3・・・)しております。 ----- <sheet1>    A列  B列   C列   D列  ・・・ 1行 No.  項目1  項目2  項目3 ・・・ 2行  1   値1   値2   値3  ・・・ 3行  2   値4   値5   値6  ・・・ 4行  3   値7   値8   値9  ・・・ <sheet2> 請求書の雛形 セルA1~A10に請求書を発行したい<sheet1>A列のNo.を入力。 ----- これを、A列の左に行を挿入、各行にチェックボックスを配置し、 チェックボックスをオンにした行のB列(行挿入前はA列)の値(No.)を 「sheet2」のA列(例えばA1/複数の場合はA1,A2,A3・・・10行程度)に コピーを行う仕組を作ることを検討しています。 複数のNo.をチェック(1,3,10)した場合は、 「sheet2」のA1,A2,A3の様に、上から順になれば理想的です。 説明が悪く、意図が伝わり難いこととは思いますが、 これらの作業を行うマクロ(他の方法も可)を組むことは可能でしょうか。 ご教授いただければ幸いです。 よろしくお願いいたします。

専門家に質問してみよう