[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロを複数回実行したいのですが・・・』(がちゃん)
教えてください。、1行選択して、指定したフォームに
データを表示させ、印刷するマクロを組みました。
次の行を自動的に選択して、マクロを実行する方法はありますか?
こんな感じです。シート1に
001 あ 1000個
002 い 100個
003 う 500個 というデータが500件ぐらい在ります。
1行目(001、あ)のデータを選択して、(シート2に作成した、フォームに表示し)
印刷させるマクロを実行。
1回1回、行を選択してマクロ実行(ボタン登録済)しています。
データを選択して、マクロボタンを押す・・・ところも自動的に行いたいのですが、
いい方法はありますか?
実行回数はその都度、任意に指定したいのですが・・・
宜しくお願いします。
ループさせれば良さそうです。 001から500位まで、ですよね? 今のコードを提示した方がいいかも知れませんね。 (kenbou)
' Macro13 Macro
'
Application.Run "'552-2.xls'!Macro1" Application.Run "'552-2.xls'!Macro7" Range("C2").Select End Sub
Macro1 Macro ' Selection.Copy Sheets("印刷").Select Rows("1:1").Select ActiveSheet.Paste End Sub
Macro7 Macro
'
ActiveWindow.SmallScroll Down:=6 Range("A2:AA32 ").Select Selection.PrintOut Copies:=1, Collate:=True ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 Rows("1:1").Select Selection.ClearContents Sheets("印刷").Select Columns("A:AA").Select ActiveSheet.Paste Sheets("検索").Select End Sub
わかりますか?(がちゃん)
これで全部ですか? (kenbou)
フィルターオプションの関してのマクロがあります。
' Macro2 Macro
'
Rows("8:2284").Select Selection.Delete Shift:=xlUp Sheets("552-2").Columns("A:BW").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:J2"), CopyToRange:=Range("A8"), Unique:=False Range("C5").Select End Sub
Sub Macro1()
'
' Macro1 Macro
'
Selection.Copy Sheets("印刷").Select Rows("1:1").Select ActiveSheet.Paste End Sub
Sub Macro7()
'
' Macro7 Macro
'
ActiveWindow.SmallScroll Down:=6 Range("A2:AA32 ").Select Selection.PrintOut Copies:=1, Collate:=True ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 Rows("1:1").Select Selection.ClearContents Sheets("印刷 (2)").Select Columns("A:AA").Select Selection.Copy Sheets("印刷").Select Columns("A:AA").Select ActiveSheet.Paste Sheets("検索").Select End Sub
Sub Macro13()
'
' Macro13 Macro
'
Application.Run "'552-2.xls'!Macro2" Rows("9:9").Select Application.Run "'552-2.xls'!Macro1" Application.Run "'552-2.xls'!Macro7" Range("C2").Select End Sub
たぶん、これで全部だと思います。
お願いいたします(がちゃん)
ループはできますが、500個も印刷ジョブを溜めると フリーズしたりしますので、2,30個ずつに分けて実行するか、 印刷ジョブが無くなってからループを繰り返す必要があります。
ループの方法はどなたかが書いてくれると思いますが(汗 全部一気にループさせないようにご注意ください。
(yc)
レスついてないようですね^^; がちゃんさん、このマクロだとちょっと処理がわからないです。
> 1行目(001、あ)のデータを選択して、(シート2に作成した、フォームに表示し) > 印刷させるマクロを実行。
上記の処理は、印刷させるマクロの部分だけではないでしょうか? その前の、「行を選択して」という部分はどこになるのでしょうか? Macro2から開始しているようですが、それらしき処理が見当たりません。 どのように選択しているのかが判らないと、自動化できません。
(yc)
説明不足ですみません。
>その前の、「行を選択して」という部分はどこになるのでしょうか?
は、手で選択しています。
フィルターオプションにてデータを抽出後、1行ずつ選択して、
印刷マクロを実行(マクロボタンを押す)・・・処理になっています。
表示上(見た目)は、1,2,3,5,7,・・・・というように
行がとんでいます。
表示されたデータを上から、「順番に選択する」マクロをつくりたいのですが、
どうしたらいいのかわかりません。
お願いいたします。 ><。。。(涙)(がちゃん)
おはようございます。了解しました。
どういうフィルタをしているかわからなければ自動化できません。 フィルターオプションのマクロがあれば、それも書いていただけますか?
また、今手で行っている処理を自動マクロに記録して、 それも一緒に貼っていただけますか?
ループさせる場合は全体がわからないとできないのでよろしくです。
(yc)
A1 B1 C1 のセル
個別番号 担当者 対象年月
2005/10
と入力して、↓のマクロを実行すると対象データとして500件ぐらい表示されます。
Sub Macro2()
' Macro2 Macro
'
'
Rows("8:2284").Select Selection.Delete Shift:=xlUp Sheets("552-1").Columns("A:BW").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:J2"), CopyToRange:=Range("A8"), Unique:=False Range("C5").Select End Sub
表示された、データの1番はじめ(9行目)を選択して、
マクロ1、マクロ7 を順番に実行します。
Sub Macro18()
'
' Macro18 Macro
'
Rows("9:9").Select Application.Run "'552-2.xls'!Macro1" Application.Run "'552-2.xls'!Macro7" End Sub
1回終了すると、次は10行目を選択して、マクロ1、マクロ7を実行していきます。
(表示上(見た目)は、1,2,3,5,7,・・・・というように
行がとんでいます。)
上から順番にデータがなるまで、続けます。
どうにかならないかと思って、レスしました。
どうか、お願いいたします。(がちゃん)
ちょっと判ってきました。さらに、いくつか確認させてください。
・Macro18とMacro13は、やっていることを自動マクロで記録したもの ということでいいでしょうか?
・Macro2の中に8〜2284行目を削除するようなマクロが書かれているんですが、 何か削除するようなことを毎回やっていますか?
・フィルタオプションでフィルタをかける前の部分も自動マクロで記録 していただけますか?
・Macro1で、1行目をシートにコピーしているようですが、 コピー元とコピー先のシート名は違っていますか? これは見出し?かな?
(yc)
おはようございます。
上記に追加で質問です。
・フィルタをかけた状態で、そのシート全体をコピーして、別のシートに値貼り付けすると フィルタ結果のみを貼り付ける事ができます。 値貼り付けをした方のシートを使っても、同様に印刷することは可能ですか?
(yc)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.