本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

2人が「役に立った」と評価
ベストアンサー

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

2015/08/31 20:53

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」についての質問です。

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

ベストアンサー
2015/09/02 23:48
回答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

お礼

2015/09/06 15:57

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

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (3件中 1~3件目)

2015/09/01 00:05
回答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

補足

2015/09/02 21:03

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

質問者
2015/08/31 21:21
回答No.1

>EXCEL2010 で「繰り返し作業」を行うマクロを組みたいのですがうまくいきません。ど>なたかご教授ください。
>作業内容は下記の通りです。

いちいちネットで質問していても
仕事になりませんので、
1冊本を購入することをお勧めします。

今回の件は、
offset、do Loop, loopの終了としてのif文がポイントになります。
キーボードマクロを相対記録で記録し
2-3回分やると、
オフセットというコマンドがキーポイントであることがわかります。

であとはループで、移動先が空になるまで繰り返します。

ところで、
BC列のデータを基に、差し込み印刷ではいけないのですか?

お礼

2015/09/02 21:07

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

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。