[[20050908201300]] 『マクロを複数回実行したいのですが・・・』(がちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロを複数回実行したいのですが・・・』(がちゃん)

教えてください。、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.