アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://okweb.jp/kotaeru.php3?q=1135058の追加質問
上記で差込印刷出来るフォームを作成(VBA)したのですが、「オートフィルタで選択したデータだけを対象にして印刷したい。」という要望が殺到しています。1.「顧客リスト」白紙(定型データベース:列固定)でオートフィルタで選択されたデータ(可視セル)だけを対象にして2.「顧客別シート」(印刷用フォーム)を印刷する記述に変更したいのですが、どうしたらいいでしょうか?

★現在の記述★
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("貼付用")
Set sh2 = Worksheets("印刷用")
d = sh1.Range("A65536").End(xlUp).Row
For i = 3 To d
sh2.Cells(1, "B") = sh1.Cells(i, "B")
~中略~
sh2.Cells(1, "W") = sh1.Cells(i, "W")
sh2.Range("a2:ce44").PrintOut
Next i
End Sub

★以下、当初質問(1135058)の抜粋★
エクセルの「顧客リスト」データベースから、エクセルの「顧客別シート」印刷用フォームの各セルに差込印刷したい。「顧客別シート」は様々な理由からワードではなく、既にあるエクセルフォームにて行いたい。データベースの件数が可変で、多数のユーザーが使用するので、個々のユーザーはVBAの編集をしなくてもいいことが前提です。
1.「顧客リスト」白紙(定型データベース:列固定)
2.「顧客別シート」(印刷用フォーム)
3.「印刷用マクロ」
の3つが含まれたブックを公開し、個々のユーザーが個別にダウンロードしたデータ(行数可変)を1に貼り付け、貼り付けたデータを全て「顧客別シート」で印刷するイメージです。「顧客別シート」(印刷用フォーム)の余白は使用可能なので、そこに例えばその都度印刷範囲の行数やセル名等を入力してもらうことは可能です。

A 回答 (1件)

こんにちは。



提示のコードを利用するとした場合。
以下の●印のコードを追加して下さい。


--------------------------------------------
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("貼付用")
Set sh2 = Worksheets("印刷用")

●Dim Vcell As Range
●Set Vcell = Sh1.Cells.SpecialCells(xlCellTypeVisible)

d = sh1.Range("A65536").End(xlUp).Row
For i = 3 To d

●If Not Intersect(Vcell, sh1.Cells(i, "A")) Is Nothing Then

sh2.Cells(1, "B") = sh1.Cells(i, "B")
~中略~
sh2.Cells(1, "W") = sh1.Cells(i, "W")
sh2.Range("a2:ce44").PrintOut

●End if

Next i
End Sub

----------------------------------------------
以上です。
 
    • good
    • 0
この回答へのお礼

ありがとうございます!出来ました。
お恥ずかしながら、意味はわかっていませんが・・・。追々勉強していきます。
大変助かりました。

お礼日時:2005/02/02 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています