• ベストアンサー

エクセルで、書き換えられるデータを残したい

エクセルで、次のマクロを作っていただけませんか。 日々変わるデータだから、その時のデータを記録したいのです。 ボタンを押すと(ボタンの設定は出来ます)、 「sheet1のE5」のデータを「sheet3のA2」に 「sheet1のF8」のデータを「sheet3のB2」に 「sheet1のF10」のデータを「sheet3のC2」に (ここまでなら何とか・・という気もするのですが、この先がさっぱりです) もう一度ボタンを押すと、 sheet3のA列の空白(この場合A3ですね)から、前記のように。 もう一度ボタンを押すと、 sheet3のA4からと記録していきたいのです。 よろしくお願いいたします。

noname#153814
noname#153814

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

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

#1のご回答のコードをお借りして、セルが増えても、コード行数を 増やさないように考えました。 対象セルが増える場合、 t1 = Array("E5", "F8", "F10")のF10の後にカンマで、”セル番地”を追加してください。 同じく対応して、累積記録する列を t2 = Array("A", "B", "C")の”C”の後にカンマで列記号を追加してください。t1の順と対応をとって並べてください。 そしてコマンドボタンやシェイプ図形のマクロの登録(クリックイベント)に下記モジュールを登録してください。 t1のセルが空白の場合は累積されません。 ーーー Sub test01() t1 = Array("E5", "F8", "F10") '変動セル t2 = Array("A", "B", "C") '記録を累積する列 For i = 0 To UBound(t1) '変動セル数だけ繰り返し With Worksheets("Sheet3") If Range(t1(i)).Value <> "" Then .Range(t2(i) & "65536").End(xlUp).Offset(1).Value = Range(t1(i)).Value End If End With Next i End Sub 以上を少数データでテストしました。

noname#153814
質問者

お礼

ありがとうございました。 おかげで完成しました。 実際は、NOW関数で書いてあるものを「値の貼り付け」にしたり、小数点の桁数を整えたりと半日以上かかりましたが、目的は達成しました。

noname#153814
質問者

補足

新年明けましておめでとうございます。 今年もよろしくお願いいたします。 今までは出荷伝票を2部印刷し、1部を残すようにしていたのですが、PCに残すようになり、今年定年のおっちゃんには一列目は書けますが、二列目(空白セル)の設定というのがわからず、質問をさせていただきました。 5日に出勤したら実機で試しますから、「できたよ!!」という返事はそれまで待ってくださいね。

その他の回答 (2)

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

こんばんは。 ボタン(コントロールツール・ボタン)のある場所のモジュールに以下を取り付けてください。このような内容でいかがでしょうか?Endプロパティというものを使って、列の最終セルを求めます。 Private Sub CommandButton1_Click()  With Worksheets("Sheet3")   If Range("E5").Value <> "" Then    .Range("A65536").End(xlUp).Offset(1).Value = Range("E5").Value   End If   If Range("F8").Value <> "" Then    .Range("B65536").End(xlUp).Offset(1).Value = Range("F8").Value   End If   If Range("F10").Value <> "" Then    .Range("C65536").End(xlUp).Offset(1).Value = Range("F10").Value   End If  End With End Sub

noname#153814
質問者

お礼

ありがとうございました。 おかげで完成しました。 実際は、NOW関数で書いてあるものを「値の貼り付け」にしたり、小数点の桁数を整えたりと半日以上かかりましたが、目的は達成しました。

noname#153814
質問者

補足

新年明けましておめでとうございます。 今年もよろしくお願いいたします。 今までは出荷伝票を2部印刷し、1部を残すようにしていたのですが、PCに残すようになり、今年定年のおっちゃんには一列目は書けますが、二列目(空白セル)の設定というのがわからず、質問をさせていただきました。 5日に出勤したら実機で試しますから、「できたよ!!」という返事はそれまで待ってくださいね。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

作って、というのでしたら、 お金を払ってプロに頼みましょう。 ここのようなQ&Aサイトは勉強の場です。 プログラム作成依頼のサイトではありません。

関連するQ&A

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

    エクセルのVBAマクロについて、添付のような物を考えているのですが、宜しくお願いします。 B3~E15に関数を入れて、TRUE となったデーターを表示 させるまでは出来たのですが、このデーターをF~I列へ上から順に (空白行は詰めて)順次記録して行きたいのです。 B3~E15に表示させるデーターは、別シートから抽出し、 切り替えますので、結果を表示させたら、ボタンを押して記録し、 再度別データーを入れたらその下に記録して行くような仕組み を考えております。 宜しくお願いします。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセルでの比較データコピー

    エクセル2010でマクロを組んでデータ処理を簡単に行いたいのですが、 よくわからないので、教えてください! シート2のC列とシート1のD列を比較し、同じ文字列があった場合に シート2のE列をシート1のF列にコピーする。 ただし、シート2のE列に〇が入っている場合は、シート2のG列をシート1のF列にコピーする。 どなたかご教示いただけませんか? よろしくお願いします!

  • エクセル 複数シートのデータを一つにまとめる

    エクセルに関してお知恵を拝借願えれば幸いです。 一つのファイルに多数の(30~96)シートが存在している エクセルデータがあります。 これらを加工しやすいようにしたいと考えております。 内容としては、 シート1~シート3までは、 同じA列に対し、違う内容が示されており(※1)、 (※1) シート1 A列    B列   C列・・・ 名前α  年齢  住所・・・ シート2 A列    B列   C列・・・ 名前α  血液型 趣味・・・ シート3 A列    B列   C列・・・ 名前α  特技  好物・・・ シート4以降は3シートずつ上記のA列が変わっていきます。(※2) (※2) シート4 A列    B列   C列・・・ 名前β  年齢  住所・・・ シート5 A列    B列   C列・・・ 名前β  血液型 趣味・・・ シート6 A列    B列   C列・・・ 名前β  特技  好物・・・ 作業としては二つあり、 作業1:3つのシートに分かれているデータを先頭のシートに一つにまとめる (シート1) A列    B列   C列   D列   E列   F列   G列 名前α  年齢  住所   血液型  趣味  特技  好物 (シート2) A列    B列   C列   D列   E列   F列   G列 名前β  年齢  住所   血液型  趣味  特技  好物 作業2:上記を一つのシートにまとめる (シート1) A列    B列   C列   D列   E列   F列   G列 名前α  年齢  住所   血液型  趣味  特技  好物 名前β  年齢  住所   血液型  趣味  特技  好物 A列の名前の数が違っていたりして、単純に作業記録のやり方のマクロでは うまくいかず、これらを可能とするマクロについてご助言願えれば幸いです。 よろしくお願い致します。

  • エクセルでのデータの照合

    お世話になります。WindowsXPエクセル2003を使っているマクロ初心者です。 A B C D E F G 1 2 3  1 2 2 2 3 4  2 3 4 3 4 5  2 4 5 4 5 6  4 4 6 5 6 7  5 6 8 (左グループを元データ、右グループを加工データとします) A列とE列・B列とF列・C列とG列…という流れでデータを比較し、 元データと値の違うセルの色を変え、赤の太字にするようなマクロを作るには どのように書けばいいのでしょうか。 上記例の場合では、E3・F5・G2・G7のセルを変化したいということになります。 条件付書式でも試してみたのですが、なかなかうまくいかなかったため、 これからマクロに触れる機会も増えることを考えて、マクロで対応したく思い、 連絡させていただきました。宜しくお願いいします^^

  • エクセルで表のある列を最初から最後まで選択するマクロ

    今現在、シートにA3:E700までの大きな表があります。 中のデータは文字列や数値です。 A列B列には途中に空白はありません。C~E列には空白もあります。 この表のB列だけを選択するマクロを書きたいのですが、データは日々増減するため最終行が特定できません。 どのように書けばいいのでしょうか?

  • 同じデータかどうかを調べたいEXCEL

    お世話になります。 EXCEL2000です。 同じシートで、C列と、F列にデータが縦にならんでいます 同じデータかどうかをしらべたいんです G列に結果を出したいので、 G列のデータの始まりの一番最初をクリックして =IF(C3=F3,"○","×") とでもいれてみましたが、 これだと、○×で結果がでてしまうので、 違う結果だけをFALSE!といれたいんです。 「×」のところに「FALSE!」といれればいいでしょうか? では、空白にしたい「○」のところには何をいれればいいでしょうか? どうかおしえてください。 根本的なことがまちがっていたらごめんなさい

  • EXCEL データをコピーして別シートの最初の空白行に貼り付けたい

    EXCEL データをコピーして別シートの最初の空白行に貼り付けたい Sheet1はA列からR列までを使ったシートで、1行目は各項目があり、2行目からは当月のデータが入力されています。 Sheet2はSheet1の1行目と同じようにA列からR列までが項目になっていて、期中のデータを付け足していきたいと思っています。 マクロの記録でやってみたのですが、前月の最後の行(貼り付ける最初の空白行)の認識の仕方が分からず、Sheet2への貼付がうまくいきません。 どのような方法でやったらいいのか教えて下さい。

  • データを別bookシートに移す

    a1シート1のデータ1,2(データ1.5行G列~18行G列,~9000個、データ2.25行G列~38行G列,~9000個)をb1シート1,c1シート1に移行したいのですが、 a1シート1のデータ1,2は、9000個と9000個とします。 b1シート1,c1シート1は、16000個前後をできれば最大にしたいと考えています。 このとき移行したいb1シート1(5行G列~18行G列,~16000個)は最終列からでてしまいます。 出てしまう分をc1シート1(5行G列~18行G列,~2000個)に書き移したいと思っています。 分かりやすくと思い9000個と書きましたが、データにより数は、異なっています。 このとき、データ1とデータ2の連結は、空白行なしです。 b1シート,c1シートは、a1シートとは、別bookです。 こんなときのマクロを教えていただければと思い質問しました。 マクロ記録でしましたが、うまくできませんでした。 コードを教えていただけませんか。 よろしくお願いします。 m2010です。  a1シート1 /ABCDEFGHI-------------MHJ 1データ1 2------9000個 3 4 5------○○~~~~~○○ 6------○○~~~~~○○ 7------○○~~~~~○○ . . . 17-----○○~~~~~○○ 18-----○○~~~~~○○ 19 . . 23データ2 24-----9000個 25-----○○~~~~~○○ 26-----○○~~~~~○○ . . . 37-----○○~~~~~○○ 38-----○○~~~~~○○ 39 b1シート1 /ABCDDEFGHI-----------MHJ-------WQP 1データ1,データ2 2-------16000個 3 4 5-------○○~~~~~○○~~~○○ 6-------○○~~~~~○○~~~○○ 7-------○○~~~~~○○~~~○○ . . . 17------○○~~~~~○○~~~○○ 18------○○~~~~~○○~~~○○ 19 データ1,データ2の継ぎ目に空白なし。 マクロの記録では、 Sub Macro1() ' ' Macro1 Macro ' ' Range("G5").Select ActiveSheet.Paste Range("MHJ5").Select ActiveSheet.Paste Range("F4").Select End Sub c1シート1 /ABCDEFGHI~~ 1データ2の残り 2------2000個 3 4 5------○○~~○○ 6------○○~~○○ 7------○○~~○○ . . . 17-----○○~~○○ 18-----○○~~○○ 19 この質問は、難しいのでしょうか。 書き方がわるいのでしょうか。 よろしくお願いします。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

専門家に質問してみよう