• 締切済み

行をコピーするマクロ

下記のような表があります。 最初は10件分の行しかない(印刷するとこれで1ページ) のですが10件を超えた場合に、この元になっている表 (データの入っていないテンプレート、他のシートにあります) から10件を埋めた後にコピーするマクロを組みたいのです。 具体的には23行目に別シートの2行目から22行までをコピー するマクロボタンをこのシートにおきたいと思っています。 日によってデータの量は数件から200件くらいになり、日締めで これを印刷しなければいけないので、必要なページのみ 印刷したいからです。 使っているのはWindowsXP(SP3)、OfficeXP(2002)です。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>データ入力用のシートにペーストできなかった 「できなかった」とは,貼り付けが作動しなかったという意味ですか?それとも何か間違った場所に貼り付いたという意味でしょうか。 いずれにしても,回答の手順をスルーして行ってない,若しくは間違った事をしてると考えられます。 1)データ入力用のシートにマクロのボタンを設置して実行していますか。 2)回答したのと違う,間違ったモジュールにマクロを記載していませんか。 3)Ctrl+Endを押して最後のセルを確認する以下の操作をキチンと行いましたか。 でも今回あなたがご自分で追加作成したマクロのように,データ入力シートの「A列だけ」見ればどこまで入力したのかしっかり調べられるという前提を置いた(そのようにしか作動しない)マクロでいいなら,それはそれで簡単なので,そうしてください。 >ペーストした行を選択したままなので、 >なんとか入力行の最初のセルを選択するようにしたい ペーストした次の行に activecell.select と書き足して下さい。

jab01124
質問者

お礼

再度、教えていただきありがとうございます。 ペーストされていなかったと思ったのは勘違いで かなり下の行(160行)にペーストされていました。 最初のCtrl+Endで選択しているセルの最終列(IV) が選択されたのでT列よりIV列まで削除してから 終了して、再度ペーストしたマクロを実行したら 上記のようになりました。 それで今度は23列より190列まで削除してから 同様に行ったところ教えてもらったマクロのみで 上手く行くようになりました。 activecell.selectを入れてみましたが最後に入力した セルを選択したままです。 希望はA列の「商品番号」の下のセルを選択したいのですが なんか上手く行く方法はありますか? 質問ばかりですいません。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

簡単な準備: まだデータを記入していない状態でCtrl+Endを押す 表の右下セルにジャンプする事を確認する もしも余計なセル(たとえばS60セルあたり)まで飛んで行ってしまったときは、23行目から最終セルを含んだ行(60行)までを「行選択」し、行番号を右クリックして「行削除」し、必ずブックを一回保存し閉じて開きなおす 改めてCtrl+Endを押し、今度はS21で止まることを確認する。失敗した時は行削除の手順をやり直す。 手順: ALT+F11を押してVBE画面を出す 挿入メニューから標準モジュールを挿入する 下記のマクロをコピー貼り付ける sub macro1() dim r as long r = activesheet.cells.specialcells(xlcelltypelastcell).row + 1 worksheets("テンプレートのシート").rows("2:22").copy destination:=cells(r, "A") end sub シートにオートシェイプの図形などでボタン絵柄を作成し、右クリックしてマクロの登録でマクロを登録する。

jab01124
質問者

お礼

ありがとうございます。何とかコピー、ペーストするところまでは出来ました。

jab01124
質問者

補足

コピーしてやってみましたが、データ入力用のシートにペーストできなかったので 試行錯誤して下記の構文を入れて何とかコピーできるようにはなりました。 Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2 Rows(LastRow).Select ActiveSheet.Paste Application.CutCopyMode = False しかし、このままではペーストした行を選択したままなので、 なんとか入力行の最初のセルを選択するようにしたいの ですがうまくいきません。 ヒントでも良いので教えていただけると助かります。

関連するQ&A

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

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

  • エクセル 結合行から1行にコピーする

    専門的な事は分かりません。うまく伝わるでしょうか。 2枚のシートがあり、いずれもエクセルのデータで、印刷すると1ページ20行の見積内訳書です。かたや1行が2行の結合行で20行あり、この内容を1行で20行のシートにコピーしたいのです。現在、1行づつコピーしています。1ページ一括コピー出来る技ご存知ないですか?

  • 1行から2行へのコピーなんですが

    データベースとなるシートの任意の連続する複数行を違うシートの2行にコピーしたいと考えています。 要は、 番号、氏名、社員番号、生年月日・・・と続く1行のデータを 印刷するためのシートへ 番号、社員番号・・・ 氏名、生年月日・・・のように2行にしたいのです。 1行から1行であればエクセルの基本的な機能で出来ますが、 1行から複数の行へ、終わったら次の行へ移る、の2点でつまづいております。 マクロ初心者へアドバイスお願いします。

  • エクセルマクロで印刷範囲の設定

    エクセルのsheet1に表があります。 この表を印刷ボタンを押すだけで印刷できるようにしようと思います。データの最後の行までのページを印刷できるようにするマクロを教えてください。 ちなみに、今ある最後のデータより下の行もずっと罫線が引いてあります。 また、印刷だけだったら普通に 印刷>ページの指定 でできるよと思われるかもしれませんが、その他の機能もマクロでつくっている最後の段階なのでマクロでお願いいたします。 分かりにくい文章ですがよろしくお願いします。

  • 任意の複数行をコピーするマクロ

    VBを勉強中の初心者です。 マクロの自動記録でシート1の5~6行目をシート2のセルA3へコピーすることはできました。マクロの内容は   Sheets("Sheet1").Select   Rows("5:6").Select   Selection.Copy   Sheets("Sheet2").Select   Range("A3").Select   ActiveSheet.Paste となっていました。 上記のシート1の5~6行目を任意の複数行(例えば A1 に 200306 A2 に 200307 A3 に 200307 A4 に 200307 A5 に 200308 A6 に 200309 A7 に 200309 のデータがあった場合、コピーしたい年月が 200307 の場合は A2 ~ A4 をシート2のA3へ)でコピーしたいのですが、どうすればよいのかどなたか教えて下さい。よろしくお願いします。

  • エクセルマクロのページカウンタ

    エクセル2002で,Sheetに表があります. 同じ表を使用します. データは10件分入ります. 10件を超えると次の用紙に印刷をします. 印刷はマクロ命令で作成しています. 印刷の際,ページ番号をページの下にふりたいのです. 1枚目には「- 1 -」,2枚目には「- 2 -」のように 印刷できるとありがたいのですが. どなたか,ご教授をよろしくお願いいたします.

  • 【マクロ】データが1つもない行を削除する

    添付した画像のようなファイルがあります。 この表の中で、データが一つもない行は削除して、上詰めにするマクロを実行したいです。 また、このシートの表は11行で終わっていますが、 他のシートは25行目で終わっていたりとバラバラです。 すべてのシートでこの処理を行いたいと思っていますので、 他のシートで処理を行ってもエラーのでないマクロを教えていただけたら幸いです。 ちなみに、 ・各シートに表はひとつづつ。 ・各シートの表の開始セルは同じ。 ・全シートに対して一気に処理を行いたい。←指定した処理をすべてのシートで行うマクロは作成済なので大丈夫です。

  • 行のコピーに対し一列だけコピーしないようにする

    お世話になります。 エクセルのコピーに関して質問です。 あるデータをコピーする際、行のコピーという操作をやっています。 以下の例では一行目にabcde・・・というデータを貼り付ける操作です(ずれていてすみません)。 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 abcdefghijklmnopq・・・ ただたとえば最後のz列にのみ数式を入れていてここはコピーしてほしくないのです。 以下の制約があり普通のコピーで対応したいのですが方法はないでしょうか? 1 1行のデータが100以上あるため行コピーが楽 2 行数(コピーする行数)は100以上あるためシート内の別範囲に表示させる方法は見えにくく× 3 種類別に分けてシートを作成しているので別シートに表示させる方法はシート数が多くなりすぎて× 4 色々な人(初心者も)がコピーするため+データはUSB等でバラバラにもってくるためマクロは避けたい マクロを使えばできそうというのはわかるのですが本人自身もまだ初心者なのと コピーする個所は各自判断しなくてはいけないので難しいと感じています。 駄文ですみませんがよろしくお願いします。

  • エクセルの行コピー

    エクセルで 1Aから10Mまでデータが入っています。 このデータの2行目、3行目、6行目、9行目を行を表示しない設定にしてあります。 今、画面を見たままの状態(4つの行が隠れている状態)でコピーして別のシートに貼り付けたいのですが、隠れている行のデータまでコピーされて貼り付けられます。 上の例なら、貼り付けた後、行を表示しないに再度設定したらいいのですが、やりたいのは 現状1ページ目、2ページ目と印刷範囲を決めたA4サイズで8ページもののデータがあるのですが、これを 1ページ目の列右横方向に2ページ目のデータを移動させて、 4ページ目を3ページ目の横へ移動させてとして、A3サイズ4ページのデータにしたいです。 こうすると、表示を隠してあるページが奇数ページになく偶数ページにあると行を表示させない設定にできません。 何かいい方法があったらご教授ください。

  • エクセルでマクロのページカウンタ印刷表示

    エクセル2002で,Sheetに表があります.同じ表を使用します.データは10件分入ります. 10件を超えると次の用紙に印刷をします. 印刷はマクロ命令で作成しています. 印刷の際,ページ番号をふりたいのですが どのように記述すればいいのか,わかりません. 1枚目には「1ページ」,2枚目には「2ページ」のように印刷できるとありがたいのです. どなたか,ご教授をよろしくお願いいたします.

専門家に質問してみよう