• 締切済み

データをコピーするマクロを教えてください。

「入力用シート」に毎月データを入力し、出た値(例えばA1に値が出るとすると)を、別の「記録用シート」に月別にデータをコピーする“マクロ”を教えて下さい。 よろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

このままだと「丸投げ」なので・・・ <方法1> ・「ツール」-「マクロの記録」でやりたいことを、手動で行い「記録を終了」 ・上記で7、8割のものはできるので、これをいじってみる。 ・その上で、「こうしたいのだけれどどうすれば?」と質問なさってはいかがでしょうか <方法2> ・「入力シートの原本(無記入)」を作成しておく。(必要に応じて非表示) ・月初めにこれをコピーして「○○月」の入力用シートとして使用 ・集計時にはこれをそのまま「記録用シート」として利用。次月のものをコピーで新規作成 ・月別に1シートで集計したい場合は、集計シートを別に作り、参照式を事前に設定しておけば自動的に集計される  (この方法であれば、マクロなど不要になります。) ほぼ同じような質問が、過去ログにもあったと思いますが・・・

yushichoki
質問者

お礼

fujillin様へ 早速にご回答いただきありがとうございます。 ご指摘のとおり同じ内容のログ(QNo.322746)がありましたので、 それを参照してやってみます。

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

実例でも挙げて説明しないと、質問内容がよくわからない。 >月別にデータをコピーする とは >データを入力し、出た値(例えばA1に値が出るとすると) A1はA1以外の他セルのデータを使って計算でもして、表示されていることですか。 こんなの書く必要は無いのでは。式のあるセルをコピーすると、式によっては変わってしまうことはあるが、値だけの貼り付けでよいのか、など疑問あり。 一般にマクロの記録をとれば済む問題ではないのですか。やってみましたか。

yushichoki
質問者

補足

質問が抽象的で申し訳ありません。 過去に同じような質問と回答があり(QNo.322746)その通りにコーディングしてみましたが、うまく出来ません。どこが違うのか教えてください。よろしくお願いします。 下記テストデータ(Sheet1)のBの6月分のデータ(b3~b6)が毎月変わるので、(Sheet2)に、入力後その月分のデータを年次表へコピーしたいのです。 【過去の質問】 excelで同一ブック内にあるSheet(1)の数値をSheet(2)へ値のみコピーしたいのですが。 (1)Sheet(1)で月報を作成 (2)Sheet(2)の年表へ値のみコピー(転写)。 但し、条件として○○月分とsheet(1)で表示しているものを参照し、Sheet(2)年表の○○月分のセル(○○:○○)にその値を転写したいと思っています。 当方、マクロ等よく分かりませんのでよろしくご教示下さい。 【回答】 テストデータ(Sheet1)ABは行・1~6は列 A B 1 月次表 5月分 2 項目名    計数 3 売上高    1230 4 受手数料 35 5 人員数     37 6 人件費     15 (以下略) テストデータ(Sheet2) Sheet2のデータ部分は空白にして、実行して下さい。 年次表 A B C D 1 4月分 5月分 6月分 7月分 (以下略) 2 項目名 計数 計数 計数 計数 3 売上高 1230 1520 4 受手数料 35 45 5 人員数 37 38 6 人件費 15 16 (以下略) 上記は実行結果です。5月、6月でやって見ました。 シートからALTキーを押しながら、ゆっくりF11、I、Mを 押しModele1を挿入。 (コーディング) Sub test01() For i = 2 To 14 If Worksheets("sheet2").Cells(2, i) = Worksheets("sheet1").Cells(1, 3) Then '前行にくっ付ける For j = 3 To 20 Worksheets("sheet2").Cells(j + 1, i) = Worksheets("sheet1").Cells(j, 2) '前行にくっ付ける Next j Exit For End If Next i End Sub iの14は12か月プラス上、下期小計の2列 jの20は項目の最下行の行番号を仮に20とした。

関連するQ&A

  • シートコピーと値の転記 シート名変更マクロを

    エクセル2010で マクロのご教授をお願いいたします。 BOOK1の Sheet1 A1~A10に 数値1000が入力されているとして Sheet1のシートのコピーを作成 Sheet1にもどり A1~A3の値だけコピーして 作業列C1に 値を貼り付け A1~A10 をクリアーにしたのちに  ※↓が うまくいきません。 A1の値→ A8 A2の値→ A9 A3の値→ A10 に入力 させるマクロは どうなるでしょうか? マクロの記録で いろいろと やってみましたが どうも ※の部分が うまくいきません どう考えてもエクセルに対しての 理解不足だと思われますが、ご教授のほどお願いします。 おこなった自動マクロの記録は↓です。 マクロの記録開始する 名前 シートコピー Sheet1を右クリックして移動またコピー コピーを作成にチェックをいれ OK コピーシートが作成される。 Sheet1をクリックしなおして A1からA3をコピー  作業列として C1に 形式を選択して貼り付け 値 A1~A10を delete でクリア C1~C3を選択 コピー A8に 形式を選択して貼り付け 値 マクロの記録終了。 あと Sheet1をコピーするさいに シート名を前日の日付に自動的に変更できればと いいなと 考えておりますが できるのでしょうか? 例えば、本日でいえば シート名→ 0112 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。

  • 新しいマクロの記録でコピーしたsheet

    新しいマクロの記録でシート2のA1~C3までの値をクリアして、シート1のA1~C3までの値を貼り付ける事を記録しました。それを●の図形にマクロの登録をして、●を押すとそれが実行されるようにしました。ここまでは問題なかったのですが、次にシート2をコピーしてシート3という名前にしてシート3の●を押すとシート2にこのマクロが実行されますが、これをシート3で実行させる事はできないでしょうか?昨晩、いろいろやってみましたが、どうしてもわかりません(>_<;)・。どなたか、よろしくお願いします。

  • 表を別のブックのシートへ連続してコピーするマクロ

    マクロ初心者です。 Sheet1のA1からC3に入力されているデータがあります。 それを別のブック(集計)のSheet1のA2からC4へ値のみコピーを行いたいと思っています。 2回目以降は、Sheet1のA1からC3のデータをA5からC7というように前回コピーした内容に上書きしないように連続してコピーを行いたいのですがそのようなことは可能でしょうか。 マクロで実行したいです。 ご教授よろしくお願いいたします。

  • 行コピーして、今日の日付の行に貼り付けるマクロ

    こんにちは、エクセルマクロについて、助けて頂きたく質問させていただきました。 添付しました画像のような表があり、 セルA2に「=TODAY()」が入っていて、セルB2から右は別シートのデータを参照しています。 マクロを実行すると、2行目を行コピーし、セルA3以下の日付からセルA2の日付(今日の日付)を探し出して、行貼り付けしてほしいです。 行コピーや値で貼り付けはマクロの記録を使って、詳しくない私でもなんとか作ることはできるのですが、 今日の日付を探し出して、そこに貼り付ける。というマクロは作れませんでした・・・。 お助け下さい、宜しくお願いします! ※補足します セルA2の今日の日付は便宜上入力しているだけです。無い方がマクロを組みやすいのなら、無くせます。

  • マクロの記録で作成したマクロがデータが代わると誤動作する。

    マクロの記録で作成したマクロがデータが代わると誤動作する。 エクセルファイルにてA列からJ列までデータがあります。 行数は2,000行です。データは全て半角です。 A列の値が 1=入庫 2=出庫 3=戻入 と全て置換 B列の値が 1=社内品 2=社外品 3=受入 と全て置換。 でこのB列が3で受入に置換えたら その隣のA列の値を 受入に置き換えたい。 さらに A列の値が置換え後の入庫と戻入場合はその行のJ列の値を切り取り、K列に貼付をし A列の値が置換え後の出庫の場合はその行のJ列の値を切り取り、L列に貼付をしたいです。 マクロの記録で行いましたが、 いったんデータを全て消して別データを貼り付けしたらA列B列の置換えは正常ですが B列が3の場合にA列を再置換えと、J列の値を切り取り、K列、L列への貼付が 誤動作します。 (別データは雛形は同じです。入力規則も同じですがデータは変わります。  例:セルA1のデータは1、 新しいデータはセルA1は2 等) マクロの記録中では、並べ替えでソートし上記条件でセルを選択しコピペをしました。 並べ替えは2回です。 マクロ文を見ると、セル名がずらずら並んで、セル番号が指定されてます。 (マクロ記録中に選択したセル番号が全部記録されてます。) 文を見ると、上記条件で置換えやコピペでなく このセルはこう置換え、このセルはこうコピペのように読めます。 これでは、データが代わったら、別の動きになるのかな?と思いました。 こういう場合はマクロではどうやって記録すればいいでしょうか?

  • 【Excel365】マクロを削除するマクロ

    特定のシート(仮にAとします)に添付画像のマクロ(別のマクロを実行するマクロ)を組み込んであります。 シートAをコピーしてシートBを作成し、値コピー・行削除などいろいろ編集した後にxlsxとして保存するという作業をしています。 しかし、シートBにも画像のマクロが組み込まれたままなので、1行目を削除するとマクロ「更新」が実行されてしまいます。 シートをコピーした後、画像のマクロを削除する方法はありませんか? 各Q&Aサイトをググるといろいろ出てきますが、理解できませんでした。 もしくは、シートAとそっくりなシート(ページレイアウトや書式もそのままでデータのみ値コピー)を作成するマクロの提示でも構いません。

  • データをコピーするマクロを教えてください

    過去に同じような質問と回答があり(QNo.322746)その通りにコーディングしてみましたが、うまく出来ません。どこが違うのか教えてください。よろしくお願いします。 下記テストデータ(Sheet1)のBの6月分のデータ(b3~b6)が毎月変わるので、(Sheet2)に、入力後その月分のデータを年次表へコピーしたいのです。 【過去の質問】 excelで同一ブック内にあるSheet(1)の数値をSheet(2)へ値のみコピーしたいのですが。 (1)Sheet(1)で月報を作成 (2)Sheet(2)の年表へ値のみコピー(転写)。 但し、条件として○○月分とsheet(1)で表示しているものを参照し、Sheet(2)年表の○○月分のセル(○○:○○)にその値を転写したいと思っています。 当方、マクロ等よく分かりませんのでよろしくご教示下さい。 【回答】 テストデータ(Sheet1)ABは行・1~6は列 A B 1 月次表 5月分 2 項目名    計数 3 売上高    1230 4 受手数料 35 5 人員数     37 6 人件費     15 (以下略) テストデータ(Sheet2) Sheet2のデータ部分は空白にして、実行して下さい。 年次表 A B C D 1 4月分 5月分 6月分 7月分 (以下略) 2 項目名 計数 計数 計数 計数 3 売上高 1230 1520 4 受手数料 35 45 5 人員数 37 38 6 人件費 15 16 (以下略) 上記は実行結果です。5月、6月でやって見ました。 シートからALTキーを押しながら、ゆっくりF11、I、Mを 押しModele1を挿入。 (コーディング) Sub test01() For i = 2 To 14 If Worksheets("sheet2").Cells(2, i) = Worksheets("sheet1").Cells(1, 3) Then '前行にくっ付ける For j = 3 To 20 Worksheets("sheet2").Cells(j + 1, i) = Worksheets("sheet1").Cells(j, 2) '前行にくっ付ける Next j Exit For End If Next i End Sub iの14は12か月プラス上、下期小計の2列 jの20は項目の最下行の行番号を仮に20とした。

  • 印刷後データを変更し、また同じ雛形で印刷を繰返しをマクロで行いたい。

    印刷後データを変更し、また同じ雛形で印刷を繰返しをマクロで行いたい。 シート1に印刷用の雛形があります。 セルの指定された10ケ所くらいに手入力後印刷しています。 この10ケ所の入力内容は別ファイルに有りますが そのファイルは夜間バッチで毎日更新されます。 またそのデータは今日は20行だけど明日は15行とデータ量が日々変わります。 シート2にこのデータファイルを貼り付けて そのシート2のデータの1行目(A2からJ2)の各値を シート1の所定の場所に値を貼付しシート1を1枚印刷。 その後シート2の2行目(A3からJ3)のデータを シート1の所定の場所に値を貼付し印刷。 これをシート2のデータ分(行です)繰り返し シート2のデータ(行です)がなくなったら メッセージBOXで「印刷終了」と出て印刷が停止。 というのをシート1に作成したボタン一つで行いたいです。 (シート2の値をシート1に貼付するのはマクロの記録で完成しましました。  でも駄目です(T_T)当たり前ですがデータ10行の時のマクロ記録では  データが15行の時11から15行目は無視されます。  Do Loop で対処可能でしょうか?) なおシート2にデータを貼り付ける時の データ選択はエクセルの「ファイルを開く」の小画面を表示させて 使用者に選択させたいです。 ↓ fName = Application.GetOpenFilename Application.ScreenUpdating = False Set fso = CreateObject("Scripting.FileSystemObject") dPath = fso.GetParentFolderName(fName) 1.シート1の「ファイル選択」ボタンを押す。 2.ファイルを選択する。(開くをクリックすると同時にno.3が自動で行われる) 3.シート2に選択ファイルが貼り付き選択されたファイルは閉じる。 4.シート1の「印刷」ボタンを押す。 5.マクロの記録どうりにシート2の2行目の値がシート1に貼り付く 6.シート1が印刷され、シート1の値がクリア。 7.マクロの記録の法則にならってシート2の3行目の値がシート1に貼り付く 8.シート1が印刷され、シート1の値がクリア。 9.シート2のデータがなくなるまで繰り返す。 10.シート2のデータ分だけ印刷したらメッセージが出る。 データを変更して繰り返して印刷の部分が参考書やWEB検索でなかなか見つかりません。 ご教授をお願いします。

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

  • Excel データの一部を別シートにコピー

    Excelで、データ行のどこかをクリックし、ボタンを押したとき、その行を別々のシートに分類してコピーさせるマクロを作りたいと思っています。 このとき、コピー先のシートをA列のデータで区別したいのです。 1.クリックした行のA列のセルを判定し、そのセルのデータを読み取る方法 2.読み取ったデータ(文字)を、コピー先シート名に指定する方法 このマクロの記述方法を教えてください。よろしくお願いします。 コピー範囲を指定し、貼り付け先のシートをアクティブにできれば、あとは記録マクロをつないで作るつもりです。

専門家に質問してみよう