• ベストアンサー

エクセルのマクロについて

マクロのコードについて質問です。 シート1のセルA1の値が更新されるたびに、シート2のA1,A2と値が自動で反映されていくマクロを教えていただけないでしょうか。 シート1をベースとして、セルA1に記入した日付をシート2の表に12ヶ月分蓄積させていきたいと考えてます。 誤記入して蓄積してしまう可能性も高い思いますが、勉強のため教えていただきたいです。 難しいとは思いますが、対応お願いいたします。

  • frdt
  • お礼率50% (3/6)

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! Sheet1のシートモジュールにしてみてください。 尚、Sheet2のA列の表示形式は「日付」にしておきます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then If IsDate(Target) Then With Worksheets("Sheet2") .Range("A1").Insert shift:=xlDown .Range("A1") = Target End With End If End If End Sub ※ 一応Sheet1、A1セルが日付と判断できるデータかどうか確認するようにしていますが、 実際は数値の場合はすべて反応してしまいます。m(_ _)m

frdt
質問者

お礼

tom04様 大変助かりました。 独学でやっていくのは大変ですね。 参考書など購入してみましたが、中々うまくいきません。 コツコツやっていこうと思います。

その他の回答 (2)

  • tsukaps
  • ベストアンサー率33% (40/121)
回答No.3

VBAでやれば普通にできると思います。 プログラマとして覚えるつもりはないけど、 今回だけ教えてって話なら、かなり無理があります。 まずは、ある程度VBAをマスターしてからが良いのではないでしょうか。

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.1

手元にマクロの文法書がないので考え方だけですが。 まず「新しいマクロの作成」で次のマクロを作ります。 Sheet2のA1にセルを挿入し、挿入後下方向にシフト Sheet1のA1の値をコピーし、Sheet2のA1に貼り付け マクロ終了 これでできたマクロを手作業で修正します。 (ツール→マクロ→Visual basic editor) 修正内容は  「Sheet1のA1の値が変わったら」という条件を上記でできたマクロの最上段に追加します。これはIF分で作れます。 「Sheet1のA1の値が変わったら」という条件の書き方はマクロの文法書を見てください。 この考え方でSheet1のA1が変更されたら、Sheet2のA1以下が下に1行下がって、A1に新しいSheet1のA1の値がコピーされます。

関連するQ&A

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

    マクロのコードについて質問させていただきます。 シート1のA1の値をシート2のA1に自動で反映させるマクロを教えていただけないでしょうか。

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

    QNo.3421130で質問させて頂いた件の続きなのですが 入力シート(1)のA1に入力された値を、シート2のB1に表示(つまりB列の同じ行数のセルに表示)するというマクロをお教え頂き、早速実践してみましたが、入力シートA1に入っている値が入力シートA10から算出された値(例:A11に日付の2007/10/18と入っていて、A10にはMONTH関数で10だけを抽出している。そのA10の値10をA1が参照している状態やIF関数で反映された値等)がシート2に表示されません。 また本マクロは入力シート(1)とシート2の同じ行列のセルの表示しか出来ませんが、たとえば入力シート(1)のA2セルの値をシート2のB4に表示(任意で表示位置を変更する方法、シート2の反映セルを下へずらす等)が分りません。 以下、お教え頂いたマクロです。 Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Column = 1 Then    Sheets("Sheet2").Cells(Target.Row, "B").Value = Target.Value  End If End Sub 続きの質問であることと、説明が分りにくく大変申し訳ありません。 非常に困っております。よろしくお願いします。

  • エクセルのマクロの登録について

    エクセルのマクロ登録についてご質問です。 エクセルでマクロを登録したいのですが、 D7~D49まで自動で数式が反映するようにしてあります。 マクロのボタンを作成し、そのボタンを押すとコピーを選択した状態になるようにしてあります。 これが、すぐよこのE列~AH列まで日付が並んでおり、D7~D49に反映させたデータを 対応する日付の下に毎日値貼り付けをしている常態です。     D      E     F     G   自動反映   9/1   9/2   9/3 7   ~ 49 ボタンひとつでコピーした状態ではなく、その対応した日付の下に値貼り付けすることはできますでしょうか。 これがシート1、シート2、シート3、シート4まで あるのですが、ボタンひとつで登録するようにできますでしょうか。 どなたかご回答よろしくお願い致します。

  • エクセルで新たなファイルを開くマクロ

    【質問:1】 ○○○.xlsというファイル上で、 ボタンを押すと、 ×××.xlsというファイルを ”マクロを有効にする”で開いて、 (どちらもマイドキュメントに保存してあります) かつ、 ○○○からの自動リンクを反映させ更新し、 (通常ですとダイヤルログボックスがでますよね) ×××のシート1のA1セルをアクティブにする というマクロはどのように書けばいいでしょうか? 【質問:2】 ×××.xlsにおいて、 ボタンを押すと、 ×××を”保存せずに閉じ”て、 かつ○○○.xls(既に開いてあります)の シート1のA1セルをアクティブにする というマクロはどのようにかけばいいでしょうか?  よろしくご教示のほどお願い致します。

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

    マクロのコードについて教えていただきたいと思います。 sheet1のA2に[=today()]の数式があって、その下の表がであります。表にもオートサムなどの関数 B2~H 70まであります。 sheet2の 1行目が日付欄で、この日付とsheet1のA2が一致した時にB2~H 70の表の数値だけを転記することは可能でしょうか。 わかりにくくて申し訳ありませんがコードがわかれば助かります。

  • エクセルのマクロ

    【シート1】 見積書フォーマットを作成しており、見積発行依頼があればこのシートに記入します。 【シート2】 シート1で作成した見積データを見積No.順に保存するシート。 ここからが、質問です! ・シート1で作成した見積のデータをマクロでシート2に蓄積していきたい。 ・シート2に蓄積してある見積データの見積No.を選択すると自動的にシート1に見積内容が反映され、過去の見積書を印刷することが可能。 このようなことをしたいのですが、マクロをどう組めば良いのかわかりません。 どなたか教えてください! 仕事で困ってます・・・。

  • マクロで更新日表示。。。

    エクセルで今日の日付を自動で入れるときは、「=now()」もしくは「=today()」でできますが、開いたシートのデータを更新したときだけ、任意のセルに今日の日付(更新日)が自動で入るようにしたいと思います。(シートを開いてもそのシートを修正しなかったら日付は変わらないようにしたいです) マクロを作成しないとできないと思いますが、なにせマクロ初心者なものでよく分かりません。 シートのどこかのセルが修正されたら、日付を入れたいセルに「ctrl+;」で更新日が入るようなマクロを作ればよいと思うのですが、具体的にどうすれば、このようなマクロが作成できるのでしょうか????

  • エクセル マクロでシート名変更

    Excelで、作成してあるフォーマットに新しく数値をコピーして完成した表を別のブックに移動して保存しようと考えています。その際、シートのA1セルの値を自動的にワークシート名に持ってきたいのですが、やり方が分からず困っています。 シート名のところ以外は、なんとなくマクロの記録を使ってできそうなのですが、A1セルの値を自動的にシート名にすることができずに引っかかっています。 いい方法があれば教えてください。 よろしくお願いいたします。

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

    シートにデータベースの表を作っています。 このデータベースを元にピボットで5つの作られたシートがあります。 データーベースのシートの中のデータが更新されたら、自動的に 5つの作られたシートもデータを自動更新したいマクロを作る場合は どうすればいいのか教えてください。 5つのシートをそれぞれ選んでピボットのデータ更新ボタンを押さないと 5つのシートのデータが更新されない。 これをマクロで自動で5つのシートのデータを更新したい。 よろしくお願いします。

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

    一つのセルに以下のマクロを設定したいです。 [Aシート] A1~B30の表があります。 A1~A30セルには、有 or 無 が入力されています。 B1~B30セルには、りんご、みかん、ばなな など物の名前(重複なし)が入力されています。 [Bシート] C3セルに、AシートのAセルが"有"だったら、Bセルの値を反映させたいです。 ※例えばAシートが以下の時 ----------------------   A  B 1 有  りんご 2 有  みかん  3 無  ばなな 4 無  いちご 5 有  ぶどう 6 無  ぱいん 7 有  びわ ・ ・ ------------------------ BシートのC3セルに、AシートBセルの値を"折り返して"表示する。   A  B  C 1 2 3      りんご        みかん        ぶどう        びわ 4 ------------------------ OS:Windows XP sp3 エクセル:Microsoft Office Excel 2003 sp3 ご存知の方がおりましたらご教授ください。

専門家に質問してみよう