• ベストアンサー

Excelのマクロで別のシートに追加する方法

入力するためのシート1からデータをためるためのシート2に入力するものをマクロのボタンでできるようにしたいのですがどのようにマクロのVBA打てばいいのか分からないので教えて下さい。 したいことは、データ4列でシート1の1行目は項目の行にして、 2行目にデータを入力する。 入力したデータを切り取って、シート2の2行目に張り付けて 次のデータをシート1の2行目に入力して 同じように切り取って次は3行目、4行目…というマクロ作りたいんです。 どなたかお願いします

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

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

こんにちは! Sheet1にコマンドボタンを挿入しておいて、コマンドボタンをクリックすると Sheet1の2行目データをSheet2の最終行以降にカット&ペーストしたい! という解釈です。 もしそうであればわざわざSheet1にデータを入力し、おなじデータをSheet2に持ってこなくても ユーザーフォームにテキストボックスを4個とコマンドボタンを配置し、 ユーザーフォームのコマンドボタンをクリックで直接Sheet2に表示させる方が簡単だと思いますが、 敢えて質問通りにやれば、 Sheet1のコマンドボタンのコードを↓のようにしてみてはどうでしょうか? >したいことは、データ4列で・・・ とありますので、A2~D2セルとしています。 Private Sub CommandButton1_Click() Dim wS As Worksheet Set wS = Worksheets("Sheet2") Range("A2").Resize(, 4).Cut wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) End Sub Excel2007以降をお使いだとして・・・ (ActiveXコントロールのコマンドボタンを挿入するとします) メニュー → 開発 → 挿入 → ActiveXのコマンドボタンを選択し、Sheet1に挿入 → 挿入したコマンドボタン上でダブルクリック → 上記コードの1行目と最終行はすでに表示されている状態ですので、 2行目~最後から2行目までをドラッグ&コピー → そのままVBE画面のカーソルが点滅しているところに貼り付け → 「デザインモード」を解除してSheet1に戻りA2~D2セルにデータ入力 → コマンドボタンをクリック! としてみてください。 ※ 今回はActiveXコントロールのコマンドボタンとしましたが、 オートシェイプ等でも構いません。m(_ _)m

gura-telia
質問者

お礼

思うに出来ましたありがとうございます

その他の回答 (1)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

とりあえず記録マクロでシート間で切り取り/コピーをしてその操作の記録をしてください。 でもってできあがったマクロを見る。 それをみて分からないところを質問するようにしましょう。 代わりにマクロを作ってということであれば、それはそれでも良いのですが、 そのあとにマクロを修正したりできなくては意味がありませんよね。

gura-telia
質問者

補足

下の文のようなものが作りたい・必要ということで書いているのでまったくマクロはできてないです。 回答してくださる方にどのようなマクロが欲しいか分かるように例えで書いたのですがそこに集中しすぎて肝心なものが抜けてましたねわごめんなさい

関連するQ&A

  • エクセルマクロ 別シートへ行列を入れ替えてコピペ

    下記内容のエクセルのマクロをご教示いただきたいと存じます。 ①「data」シートのB2からデータが入力されている最終行までをコピー(20行目までデータが入力されていたとすると、B2~B20をコピー。最終行は不定) ②「result」シートのE列のデータが入力されている最終行の次行に①のデータを行列を入れ替えてペースト(E列のデータが19行目まで入力されていたとすると、「E20」セルに①のデータ<この場合だと、「data」シートのB2~B20のデータ>を行列を入れ替えてペースト。「result」シートのE列の最終行は不定)

  • エクセル入力したデータを別シートの空白セルへ

    各シート(担当者別シートのイメージ)に入力されたデータ(行)が、 1枚のシートの空白行に次々に貼り付けられていくようにするには、 マクロを使う事になるかと思いますが、 マクロ初心者につきわかりません。 もう少し具体的にしたい事をいいますと、 ・Sheet1を貼り付け先の集合シートにします。 ・Sheet2からSheet5までが入力シートです。 ・入力する列の範囲はA~ANです。 ・列項目はすべてのシート共通です。 ・Sheet2~Sheet5にはシート毎に決められた担当者が入力します。 ・(例えばですが)各自が入力完了後、各シート内に据え付けのボタンをクリックしてSheet1に貼り付けられて集められていく。 というものにしたいのです。 どなたか、ご指導願います。

  • エクセル入力したデータを別シートの空白セルへ

    各シート(担当者別シートのイメージ)に入力されたデータ(行)が、 1枚のシートの空白行に次々に貼り付けられていくようにするには、 マクロを使う事になるかと思いますが、 マクロ初心者につきわかりません。 もう少し具体的にしたい事をいいますと、 ・Sheet1を貼り付け先の集合シートにします。 ・Sheet2からSheet5までが入力シートです。 ・入力する列の範囲はA~ANです。 ・列項目はすべてのシート共通です。 ・Sheet2~Sheet5にはシート毎に決められた担当者が入力します。 ・(例えばですが)各自が入力完了後、各シート内に据え付けのボタンをクリックしてSheet1に貼り付けられて集められていく。 というものにしたいのです。 どなたか、ご指導願います。

  • excelでのシート別条件比較

    別シートでの項目の比較を行い等しければデータをコピーしたいのですがうまくいきません。教えて下さい。 現状 シート1・1日の各項目のデータ入力及び集計 シート2・31日分のデータ(シート1で入力・集計した)及び累計  シート1でのデータをシート2へコピーしています。 シート1に日付指定項目を設けて、シート2の該当日にマクロボタン で転送できるようにしたいのですが、出来ないので困っています。 シート1からシート2へコピーするマクロは作ったのですが それにVBAで日付どうしの比較を付けたいのですが構文エラー が出ます。 If Range("B1").Value & "日" = Sheets("シート2").Select Range("J2").Value Then マクロ記録のコピー処理 End If VBAど素人です。宜しくお願い致します。

  • エクセル2000 マクロ

    エクセル2000を使用しています。マクロを使って定型の入力フォームへの入力を素早く、正確に行えるようにしたいと思っています。 「申請書」と「標準事務用品」の2種のシートに分かれており、「申請書」が定型の入力フォーム、「標準事務用品」は入力フォームに反映させたいデータが一覧になっています。 「標準事務用品」のデータの一覧は5つの項目があり、左から1.品物 2.商品名 3.品番 4.メーカー名 5.申請 となっています。 5.申請の列はオプションボタンを1行ごとに1つ設けてあり、オプションボタンがオン(True)の時に、同じ行の1~4の項目のデータを「申請書」シートの入力フォームの任意のセルへコピーしたいです。 何かよいマクロの記述方法はありますでしょうか。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

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

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

  • マクロでエクセルの空白行をアクティブにしたい

    データーを入力しているシートがあり、マクロのボタンをクリックする データの空白行をアクティブになるようにしたいのです。 具体的に B列のデーターが入力されていない行をアクティブにして他のシートのデーターを張り付ける作業をしたいのですが・・よろしくお願いします。

  • 関数 or マクロ(エクセル)

    行の項目と列の項目を検索して重なる部分のデータを拾いたいのですがどうもうまくいきません。初歩的なことかもしれませんが、VLOOKUPとHLOOKUP関数をあわせたようなもの。LOOKUPウィザードでもやってみるのですがうまくいかないのでよろしくお願いします。(最終的にVBAでやりたいです) 元のデータは、(Sheet3)にあって(Sheet2)で項目を並べ縦と横の項目に一致するデータを持ってきたいです。 Sheet3にあるデータは、別のブックよりVBAで検索したデータを持ってきています。 また、Sheet1、2ともその都度行数(検索項目数)が変わるので、できればデータシートの行数にあわせて行きたいのですが・・・こうなるとVBAになると思い挑戦しているのですがこれがまたうまくいきません。 で、データの行数にあわせて拾い出し、A列で最終行を検索して、L列~W列の各列の3行目に、5行目~最終行までの合計を取ろうと思っています。 説明が下手ですみませんが、よろしくお願いします。 環境:Win2000、98 Office2000です。

  • エクセルマクロの構文

    エクセルマクロに関してご教示いただきたく存じます。 下記の手順を1つのマクロで実行したい場合、どのような構文を書けば実現できますでしょうか? 前提: ・エクセル中、シート(1)、シート(2)を準備。 ・シート(1)には毎日1日分のデータを入力(例えば、1行目の経費項目、金額、経費支払者 の3カラムヘッダーの下に、2行目から1日分のレコードを入力していく) ・シート(2)には毎日の日別データを累積していく(例えば、シート(1)に1日目で10レコード、2日目で15レコード、3日目で20レコードの場合、3日目終了時に計45レコードにしたい。1行目の経費項目、金額、経費支払者 の3カラムヘッダーはシート(1)と同様) マクロ実行: ・シート(1)に1日目のデータ入力(10レコード)が終わった段階で、ボタンを押し、下記マクロを実行  (1)シート(1)の10レコード(A2:C11)を、シート(2)のA2:C11にコピー  (2)シート(1)の10レコード(A2:C11)を、削除(データクリア) ・シート(1)に2日目のデータ入力(15レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の15レコード(A2:C16)を、シート(2)のA12:C26にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の15レコード(A2:C16)を、削除(データクリア) ・シート(1)に3日目のデータ入力(20レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の20レコード(A2:C21)を、シート(2)のA27:C46にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の20レコード(A2:C21)を、削除(データクリア) ・4日目以降、同じボタンでマクロを実行する度に、シート(1)のデータがシート(2)の47行目以降、空白なく追加されていく 以上、皆様のお知恵をお貸しください。