EXCEL2010マクロで「繰り返し作業」の方法

このQ&Aのポイント
  • EXCEL2010で「繰り返し作業」を実現するためのマクロを組む方法について教えてください。
  • 具体的な作業内容は、「B3:C3」の値を「E4:F4」に貼り付けて印刷し、その後「B4:C4」を「E4:F4」に貼り付けて印刷し、さらに「B5:C5」を「E4:F4」に貼り付けて印刷するという作業を繰り返すものです。
  • ただし、貼り付け先は常に「E4:F4」であり、商品が無くなるまで作業を繰り返します。商品の件数や数量は日々変動します。
回答を見る
  • ベストアンサー

EXCEL2010マクロ「繰り返し作業」の方法

EXCEL2010 で「繰り返し作業」を行うマクロを組みたいのですがうまくいきません。どなたかご教授ください。 作業内容は下記の通りです。 【作業内容】  ・「B3:C3」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。  次に、  ・「B4:C4」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。  次に、  ・「B5:C5」をコピーし、「E4:F4」へ値化で貼り付け後、   「E4:F4」を印刷する。   ※商品が、無くなるまでくり返す。 (補足事項)  ・商品件数、数量は日々変動致します。  ・貼り付け先は全て同じです       B列  C列 E列 F列 3行目 商品A 500個 4行目 商品B 400個 商品A 500個 5行目 商品C 300個 6行目 商品D 200個 7行目 商品E 100個 以上、よろしくお願いいたします ※OKWaveより補足:「富士通FMV」についての質問です。

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

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

通常エクセルでは、(不定の行まで下に伸びていく)表の更に下に何かを記入するといった作り方はしません。 ご相談にもそういう説明はありませんでしたし、常識の範囲で回答が寄せられます。 無駄な二度手間三度手間にならないよう、できるだけ実際の状況を詳しく情報提供してご相談を投稿してください。 >「データーが空白になればSTOP」 やりようは幾らでもあります。それこそ参考書なりで応用してください。 作成例: sub macro2()  dim r as long ’印刷範囲を設定する(念のため)  activesheet.pagesetup.printarea = "$E$4:$F$4"  r = 3 ’順繰り繰り返す  do until cells(r, "B") = ""  ’転記して印刷する   range("E4:F4").value = cells(r, "B").resize(1,2).value   activesheet.printout   r = r + 1  loop end sub 作成例: sub macro3()  dim r as long ’印刷範囲を設定する(念のため)  activesheet.pagesetup.printarea = "$E$4:$F$4" ’順繰り繰り返す  for r = 3 to range("B65536").end(xlup).row   if cells(r, "B") = "" then exit sub  ’転記して印刷する   range("E4:F4").value = cells(r, "B").resize(1,2).value   activesheet.printout  next r end sub

karin_kurin
質問者

お礼

いろいろとありがとうございました。

その他の回答 (2)

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

sub macro1()  dim r as long ’印刷範囲を設定する(念のため)  activesheet.pagesetup.printarea = "$E$4:$F$4" ’順繰り繰り返す  for r = 3 to range("B65536").end(xlup).row  ’転記して印刷する   range("E4:F4").value = cells(r, "B").resize(1,2).value   activesheet.printout  next r end sub

karin_kurin
質問者

補足

ありがとうございました。成功いたしました。 ただ、8行目以降B列が空白の場合マクロは7行でSTOPしますが、仮に15行目に文字などが入っていると15行まで印刷してしまします。 「データーが空白になればSTOP」ができないでしょうか?

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

>EXCEL2010 で「繰り返し作業」を行うマクロを組みたいのですがうまくいきません。ど>なたかご教授ください。 >作業内容は下記の通りです。 いちいちネットで質問していても 仕事になりませんので、 1冊本を購入することをお勧めします。 今回の件は、 offset、do Loop, loopの終了としてのif文がポイントになります。 キーボードマクロを相対記録で記録し 2-3回分やると、 オフセットというコマンドがキーポイントであることがわかります。 であとはループで、移動先が空になるまで繰り返します。 ところで、 BC列のデータを基に、差し込み印刷ではいけないのですか?

karin_kurin
質問者

お礼

ありがとうございます。本は購入済みでしたが、うまくいきませんでした。

関連するQ&A

  • マクロを教えてください

    CSVファイルで、     A    B    C    D    E   F 1 444  あああ  123  けけけ 2 555  いいい  456  かかか 3 666  ううう  000        4 山   5 川 上記のようなCSVファイルで3行目のC列には0・D列はブランクです。 そこで3行目でD列がブランクのときは、A列をC列に、B列をD列に持ってきて あいたA列には999B列には@@@を入れたいのです。 そしてもうひとつは、A列をE列にコピーをしてF列はE列の数字以外を持ってきたいのです。 結果は   A      B    C    D   E   F 1 444  あああ  123  けけけ  444 2 555  いいい  456  かかか  555 3 999  @@@  666  ううう  999 4 山                    山 5 川                    川 といった結果のマクロを作りたいです。 どなたか教えてください。よろしくお願いします。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • エクセル 特定セルの足し算をするマクロ

    C列、D列、E列を足し合計をF列に記入するマクロを教えて下さい。 (3行目から値のある行まで。)  A B  C  D  E   F 1 2 3     24  16  19  59となる様に 4     35  49  41 5     22  19  72 6     ・   ・   ・ 7     ・   ・   ・ 宜しくお願いします。

  • excel2000マクロ抽出方法

    2つのファイルがあります。ブック名A.XLS シート名 WORK              ブック名b.XLS シート名 SORT              ブック名A.XLS シート名 WORKに下記のデータが入っています。 AD 1300G A227550 000PA505(C列2行目) 200112(F列)200201(G列)200202(H列)200203(I列)200204(J列)200205(K列)→1行目固定データ AD 1300G A227550 000PA533(C列3行目)   ブック名b.XLS シート名 SORTに下記のデータが入っています。 AD 1300G A227550 000PA505(A列2行目)200112(E列)200201(F列)200202(G列)200203(H列)200204(I列)200205(J列) →1行目E列~J列のデータは都度変わっている AD 1300G A227550 000PA533(A列3行目)    データ抽出条件  ブック名A.XLS シート名 WORKの F列~K列の1行目の列データとブック名b.XLS シート名 SORTの  E列~J列の1行目の列データが同じで、ブック名A.XLS シート名 WORKのC列の2行目以降のコードと  ブック名b.XLS シート名 SORTのA列の2行目以降のコードが同じだったら  ブック名b.XLS シート名 WORKの E列~J列の同じ行にデータを入れる。違うときは、  ブック名b.XLS シート名 WORKのデータはそのままにする。 上記の条件を満たしたマクロの記述の仕方を教えてください。 以上よろしくお願いします。

  • Excelでマクロを使用した削除に関して

    マクロ初心者です。 Excelにて、以下のような表データがあるとします。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50  a   b   c   d 3行  51  e   f    g   h    4行  52  i    j    k   l この表の中で、A列と1行目の値が同じになる交点となるセルの値"以外"を 削除して以下のように表示させたいのですが、 その方法がわかりません。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50      b       3行  51  e          h    4行  52          k    単純な行削除・列削除ではないため、 頓挫しています。お知恵を拝借したく、よろしくおねがいします。

  • 関数で対応が可能でしょうか?

    次のような、エクセル表で、関数(IF関数?)を使って、コピーが出来ますか? <sheet1>    A列    B列  C列  D列  E列  F列  ・・・ 1行 タイトル1  1 2行 数式1        2 3行 タイトル2          3 4行 数式2                4 5行                       タイトル1をコピー 6行                       数式1をコピー 7行                       タイトル2をコピー 8行                       数式2をコピー (1)B1=1 且つ C2=2 のとき、A1のタイトル1をF5にコピー (2)B1=1 且つ C2=2 のとき、A2の数式1をF6にコピー (3)D3=3 且つ E4=4 のとき、A3のタイトル2をF7にコピー (4)D3=3 且つ E4=4 のとき、A4の数式2をF8にコピー

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

  • Excelのマクロの組み方を教えてください

    3行と2列のデーターの塊があり、これを 1行のデータに並べ替えるにはどうしたらいいでしょうか? ただし 行方向(縦に) 30件、列方向(横に) 20件ほど入っていて、複雑です。 空白の行や列はないものと考えていただいて結構です。 詳細説明 A1からCB1はタイトルなどが入っていて、無視して、 データーの配列が以下の場合 A2 B2 C2 D2 E2 F2 →CB2まで A3 B3 C3 D3 E3 F3 →CB3まで A4 B4 C4 D4 E4 F4 →CB4まで A5 B5 C5 D5 E5 F5→CB5まで A6 B6 C6 D6 E6 F6→CB6まで A7 B7 C7 D7 E7 F7→CB7まで ↓ ↓ ↓ ↓↓ ↓ A120まで CB120まで を A2 A3 A4 B2 B3 B4 C2 C3 C4 D2 D3 D4 ↓ CA2 CA3 CA4 CB2 CB3 CB4 次に A5 A6 A7 B5 B6 B7 C5 C6 C7 D5 D6 D7 ↓ A118 A119 A120 B118 A119 A120 などと並べかえはどのようにマクロを組めばよいですか?

  • VBA

    エクセルVBAについて教えてください。 シート1 A列   B列   C列   D列   E列    F列 ・・・            商品A  商品B  商品C  商品D・・・ 日付  名前(1)   3           2     1 日付  名前(2)         1     3  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・ シート2 A列   B列    C列    D列    E列 日付  名前(1)   商品A   3               商品C    2               商品D    1 日付  名前(2)   商品B    1               商品C    3 ・      ・      ・      ・  ・      ・      ・      ・ ・      ・      ・      ・      上記のような、エクセルで作ったシート1があります。 これを、シート2のようにコピーしたいと思っています。 商品は20列あり、数字が入っている列と入っていない列があります。 数字が入っている列の商品と数字をコピーして、すべてコピーが 終わったら次の行のコピーしていく。 行は100ほどあります。 よろしくお願いします。

  • エクセルで列を複数行にしたいのですが

    注文表を商品ごとに集計したいのですが、商品名・数が列の入っています。これを縦にして集計しようと思っているのですが、列を行する方法を教えてください。 エクセルの表で列A・Bを共通にして列C・Dを次の行に、そして列E・Fを次の行にとしたいのですが、教えてください。 列A 列B   列C  列D 列E 列F 001 ○○会社 商品A 10  商品F 14 001 ○○会社 商品C 11  商品A 20 005 ××会社 商品D 32  商品C 25 これを 列A 列B   列C  列D 列E 列F 001 ○○会社 商品A 10  001 ○○会社 商品F 14  001 ○○会社 商品C 11  001 ○○会社 商品A 20  005 ××会社 商品D 32  005 ××会社 商品C 25 よろしくお願いいたします。

専門家に質問してみよう