エクセルVBAで行コピーを複数行にペーストする方法

このQ&Aのポイント
  • エクセルVBAでプログラミングしたいです。A2:J100の範囲に顧客住所録データがあります。それをコピーして、別シートにペーストしたいのですが、F列は、宛先シールの印刷枚数を入れてあります。例えば、2行目の客先の宛名シールは5枚必要という意味です。
  • Wordで差し込み印刷をする為のエクセルのデータを作るので、2行目のデータが5枚必要ならば、5行ペーストしたいのです。顧客によってシールの必要枚数が違います。
  • パソコン教室のVBAのコースに通っていますが、自分の作りたいものはまだ作れるようにはなれず、質問も教科書内の事に限られています。どなたか助けて頂きたく宜しく御願い致します。
回答を見る
  • ベストアンサー

エクセルVBAで、行コピーを複数行にペーストする方法

エクセルVBAでプログラミングしたいです。 A2:J100の範囲に顧客住所録データがあります。 それをコピーして、別シートにペーストしたいのですが、 F列は、宛先シールの印刷枚数を入れてあります。 例えば、2行目の客先の宛名シールは5枚必要という意味です。 Wordで差し込み印刷をする為のエクセルのデータを作るので、 2行目のデータが5枚必要ならば、5行ペーストしたいのです。 顧客によってシールの必要枚数が違います。 パソコン教室のVBAのコースに通っていますが、自分の作りたいものはまだ作れるようにはなれず、質問も教科書内の事に限られています。 どなたか助けて頂きたく宜しく御願い致します。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>それをコピーして、別シートにペーストしたいのですが というアルゴリズムにはしていませんが、マクロの一例です。 マクロを勉強中ということですので、解説はいたしません。 Sub Macro1() Dim idx As Integer   ActiveSheet.Copy after:=ActiveSheet   For idx = Range("A64436").End(xlUp).Row To 1 Step -1     With Cells(idx, "F")     If IsNumeric(.Value) Then       If .Value > 1 Then         Rows(idx).Copy         Rows(idx + 1).Resize(.Value - 1).Insert shift:=xlDown       End If     End If     End With   Next idx   Application.CutCopyMode = False End Sub

NEWYORKERS
質問者

お礼

見事に一瞬で出来ました! 何日も帰宅後深夜迄格闘していたので、本当に心から嬉しいです。 大変感謝しております。有難う御座います。 来週から早速毎日使わせてもらいます。 本当にご回答をありがとうございました。

NEWYORKERS
質問者

補足

補足は特にありません。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>質問も教科書内の事に限られています。 パソコン教室の課題と言う事ではないですよね。

NEWYORKERS
質問者

お礼

質問を読んでいただいてありがとうございます。

NEWYORKERS
質問者

補足

はい、そうです。 宛先シールの印刷は、会社での私の担当の仕事です。

関連するQ&A

  • 続質問 エクセルVBAで、行コピーを複数行にペーストする方法

    先日した質問に追加があるのですが、 『A2:J100の範囲に顧客住所録データがあり、 それを別シートにペーストする時、 F列は、宛先シールの印刷枚数が入っているので、 Wordで差し込み印刷をする為のエクセルのデータを作る為 2行目のデータが3枚必要ならば、3行ペーストする方法。』 追加の質問: K列に『1/3、2/3、3/3』と、入れるにはどうしたら よいか、すみませんが御指導下さい。宜しく御願い致します。

  • 差込印刷で顧客別に複数行のデータを印刷する方法で困っています

    下記(1)のようなエクセルデータをワードへ差込印刷で(2)のように表示したいのですが、どのような方法がありますか? エクセルには同一顧客名で複数行にわたるデータがあり、ワードへの差込印刷では一顧客1ページとしてその中に複数行のデータを出力したいのです。エクセルのデータを一顧客一行にすれば差込印刷は容易でしょうが、エクセル上の表示が崩れるのとデータ量が多いので困難です。 VBAを使用しないと無理のようでしたら、参考となるものをぜひ教えてください。何卒よろしくお願いします。 (1)エクセルデータ 顧客名 品目  金額  備考 A   みかん 100   あ A   りんご 200   い A   すいか 130   う B   みかん 100   あ C   りんご 200   う C   すいか 130   う (2)ワード出力 (1枚目) A殿 品目  金額  備考 みかん 100   あ りんご 200   い すいか 130   う (2枚目) B殿 品目  金額  備考 みかん 100   あ (3枚目) 以下同様   

  • Excelの名簿データから宛名ラベルの印刷

    「ラベルマイティ2・ビジネス編」というラベル印刷ソフトで宛名ラベルに印刷を予定しています。差込用データとして、Excelの名簿データを使用します。 しかし印刷指定が特殊で、宛先Aは10枚、宛先Bは20枚というように、1つの宛先ごとに異なった枚数のラベルを印刷する必要があり、しかもラベル用紙(A4サイズ24面)を無駄なく使いたいのです。 ラベルマイティには宛先ごとに枚数を指定する機能がないので、やむなくExcelのデータを加工しなければいけなくなりました。苦し紛れに考えた方法は下記のとおりです。 1.宛先Aが1行目、宛先Bが2行目、宛先Cが3行目…と続いているとする。 2.宛先Aは10枚印刷なので、1行目をコピーして、2行目以下に9行挿入して、計10行にする。同様に宛先Bは20枚印刷なので、行をコピーして19行挿入する。以下、宛先Cも同様に…。 という繰り返し作業なのですが、宛先が千件近くあるので、手作業ではあまりにも時間がかかりすぎて、困っています。関数やマクロの機能でなんとかできるものでしょうか?それとも、もっと良い方法はありますでしょうか?ちなみに当方のExcelの知識は、基本的な関数程度でマクロは未経験です。 どうぞ宜しくお願い致します。m(__)m

  • EXCEL VBAによる他アプリケーションへのコピーアンドペーストについて

    EXCEL VBAにおいてセルにある値をコピーし、他のアプリケーション(Tera Term Pro)へペーストする場合、文字列+Enterが入ってしまい、次の行へと移ってしまいます。そうではなく文字列のみをペーストしたいのですがどうやっていいか分かりません>< どうか是非教えてください。よろしくお願いします!

  • 【VBA】コピー&複数個所のペースト繰り返し

    前回と同じ質問ですが、説明が足りなかったので画像を添付いたしました。 添付画像のように、1つの値をコピーし、別シートの複数個所(同じ列の違う行)へ順次ペーストしたいのですが、貼付けデータやペーストする回数が増えた場合でも対応できるようなVBAを教えてください。 コピペする条件としては、MsgBox関数を使い「コピーするか?」で「はい」を選択すると、任意のセルにデータがコピペされます。 よろしくおねがいいたします。

  • エクセル 選択して宛名シール印刷する方法

    エクセル(2010ですが)で、簡単に宛名シールを印刷する方法は、 ・エクセルにあるラベル印刷ウィザードをつかう ・ワードの差込印刷を使う かと思います。(ざっと調べたところ) できれば、エクセルで、個人のデータを選択→選択したものについて、宛名印刷する、というのをしたいのですが、比較的簡単に(高度な方法しかなければそれでもよいのですが) 私自身はACCESSだと、そのように簡単にできるのですが、メンバー全体でつかうのと、まだ件数がそこまで多くない(300くらい)ので、できれば融通の利くエクセルでやりたいのですが。

  • エクセルで複数行を1データとして処理したい

     エクセルの表が、複数行づつで1つのデータになっています。  もう少し具体的に言うと、販売データの表なのですが、横軸が年月、縦軸が顧客毎に売上、回収、売掛金残の3行に分かれています。つまり、1つの顧客に3行づつデータが入力されているのです。  この表を活かして、ソートやフィルタなどの機能を使えるようにできないでしょうか?  また、VBA等を使って処理する場合に1纏まりのデータとして処理する事は可能でしょうか?  実は諦めてかけていたのですが、何か良い方法をご存知でしたら教えて下さい。

  • エクセルVBAでコピーすると行の高さが低くなる

    いつもお世話になってます。 エクセル2003のVBAで、セルの範囲を指定してコピーすると行の高さが低くなってしまいます。その他の書式は、変化せずうまくコピーできています。以下がプログラムです。 Sub copy_hyou() Worksheets("sheet1").Activate Range("A1:K24").Copy 'セルA1からK24をコピーします。 Range("A25").Select 'A25からペイストします。 ActiveSheet.Paste End Sub どう直せば、行の高さもコピーできるでしょうか? お休み中すみませんがよろしくお願いいたします。

  • エクセル クリップボードからペースト 行を削除

    エクセルについて質問です。 エクセル以外のソフトウェアから文字列をコピーして、エクセルにペーストするのですが、エクセル以外のソフトウェアからは自動的に3行に改行された文字列が、クリップボードにコピーされます。 必要なのは3行のうちの最後の一行で、前の二行は不要なので、一旦メモ帳などにペーストしてから3行目だけを切り出してペーストしていました。 しかし、そうすることなく、そのままエクセルへペーストして、3行のうちの前2行を自動的に削除できないものかと思いました。 そのような方法がありましたら教えて下さい。 宜しくお願い致します。

  • エクセル 同じ作業(行の削除,コピーペースト)を簡略化したい。

    いつもありがとうございます。 Excel2000を使ってデータの加工をしています。 3000行くらいあるワークシートがあります。 1.その中から削除したい行があるので,いちいち行番号のところで右クリックをして削除をしています。 これをもっと簡略化する方法はないでしょうか。 2.コピーペーストを繰り返す作業もしています。左手の小指がツリそうでプルプルしているのです。こちらも更に簡略化する方法はないでしょうか。 説明が拙くて申し訳ありません。

専門家に質問してみよう