- ベストアンサー
excel2007VBA 繰り返し処理で請求書個別発行する方法
- excel2007でマクロを勉強し始めたばかりです。VBAの繰り返し処理をしたいのですが、請求書個別発行を一括発行にする方法を教えてください。
- マクロの繰り返し処理として、売上一覧表のデータを取得し、請求書の作成を行います。具体的な手順を教えてください。
- excel2007でのVBAの繰り返し処理の方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ループのサンプルです。フィルタを三回かけて終わりです。 ※A3:R24にデータがあるシートを【複製】して行ってください。 ※処理前にW:ANのデータをクリアします。 ----処理内容---- A3をT1にコピペ A18:A20をT4:T6にコピペ W:ANをクリア リスト範囲A3:R24 検索条件範囲T1:T2 抽出範囲W6:AN50 検索条件範囲T1:T2のT2の値をループで変更します。 -------------------- Sub ループのサンプル() Dim K Application.Goto Range("T1"), SCROLL:=True Range("T1").Value = Range("A3").Value Range("A18:A20").Copy Range("T4") Range("W6:AN6").EntireColumn.ClearComments For K = 4 To 6 Range("T2").Value = Range("T" & K).Value Range("A3:R24").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("T1:T2"), _ CopyToRange:=Range("W6:AN6"), Unique:=False MsgBox "" Range("W6").CurrentRegion.ClearComments Next End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の趣旨がどこにあるのかはっきりしない質問だ。 長いコードを読者に読ませるのでなく、判らないVBA上のポイントを、文章でかけ(数行で書けるはず)。 そうすればプログラムを作るのに必要な、「考え方の整理や、他人(引き継ぎ者も含む)への説明」が出きると思う。事後に処理内容を文書で残すためにも。 === もし >数値がなくなるまで繰り返したい場合、どのようになるでしょうか であれば 行ごとの繰り返し処理において(ループには3種類ぐらいあるが、For Nextなどで) (1)End(xlUp)法 例 '--最終行番号取得 lr = Worksheets("Sheet1").Range("A100000").End(xlUp).Row 100000はそれ以上のデータはないという、安全セル範囲圏の見積もり行数。 (2)Currentregion法 「vba currentregion.rows.count」で照会 http://excel-ubara.com/excelvba4/EXCEL222.htmlなど 下記(4)(5)のことも含めて説明がある。 (3)ある列のセルデータが空白かどうかを判別し、空白セルの出現行で終わりにする IF文で行うので初歩的だがわかりやすい。 (4)Cells(1, 1).End(xlDown≫法 (5)UsedRange法 などが考えられる。 それぞれの方法は、その方法では困るケース例はすぐ考え付くだろう。その場合は条件を付けくわえて、処理を複雑にして対処するほかない。 WEB照会すれば、たくさんの記事が見つかる.まず検索語を工夫して考えて、WEB照会して、説明を読んで、なお判らない点を質問すること。 === 其れに、データはコピー貼り付けはやめることを勧める。代入法でよい。 請求書のレイアウトの段階で、文字配置やフォントサイズ、色など熟慮すること。 ある1シートに1請求書のレイアウトを作りデータを入れてー印刷(Si-tonoPrintoutメソッド)を繰り返す、方式を繰り返すのを勧めたい。画面に出すのは意味が少ない。じっくりチェックできない。請求書を総合的に、適任者が最終チェックする方法を勧める。間違うと信用を落とし、事後処理に、関係者やお偉いさんの手数をかけるので慎重に。 === 「imogasi 請求書」で照会すれば、関数を使って、データは整えて、PrintoOutメソッドだけVBAを使う方法を、ずいぶん前に回答したことがある。 -
お礼
ありがとうございます。参考にさせていただきます。
お礼
ありがとうございます!無事解決しました。 ずっと悩んでいたので助かりました。