〇のある列以外を削除して印刷シート part3 | |
---|---|
[195541] 〇のある列以外を削除して印刷シート part3- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/25(11:54)) □U R L/ kazuo様 これで最後にしますので、もう少しお力かしてください。 下記VBAに追加で、今まではA列に〇のみで考えておりましたが、A列の必要箇所に@〜Dを入力する ようにします。 @をソート印刷をして、以降A、B、C、Dがあれば、Dまで印刷を行い、A以降がなければ印刷をしない ようにはできないでしょうか? よろしく願い致します。 A B 1 @ あ 2 あ 3 A あ 4 A あ 5 あ 6 あ 7 あ 8 B あ 9 あ 10 Sub フィルター貼り付け() Dim rw As Long With ActiveSheet .Range("A3:L4").CurrentRegion.AutoFilter 1, "〇" rw = 4 - .AutoFilter.Range.Row .AutoFilter.Range.Offset(rw).Resize(.AutoFilter.Range.Rows.Count - rw).Copy _ Worksheets("印刷").Range("A4") .AutoFilterMode = False End With End Sub 上記VBAに下記のVBAを含めてもらえないでしょうか? (理解できないで作成しているので不要な箇所は多々あると思います) Sheets("印刷").Select Range("Z1:Z4").Copy Range("A3").Select Selection.End(xlDown).Select ActiveCell.Offset(2, 1).Select ActiveSheet.Paste Application.CutCopyMode = True Range("B4:B12").Select With Selection.Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With Range("A4:A7").Select Selection.NumberFormatLocal = ";;;" Range("B1:L12").Select ActiveSheet.PageSetup.PrintArea = "$B$1:$L$12" Application.PrintCommunication = False Application.PrintCommunication = True ActiveSheet.PageSetup.PrintArea = "$B$1:$L$12" Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0.75) .BottomMargin = Application.InchesToPoints(0.55) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA5 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="AAA" この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195554] Re[1]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/26(15:23)) □U R L/ 〇のある列以外を削除して印刷シート part2 での指摘漏れです。 >kazuo様 このような無償の質問掲示板では、特に新しくスレを立てる場合は回答者を指定しての質問はお控え下さい。 理由は、、、お考え下さい。 >これで最後にしますので、もう少しお力かしてください。 別に気にすることは無いです。 資源を有効活用して、業務の効率化・生産性の向上に努めて下さい。 |
[195555] Re[2]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/26(16:16)) □U R L/ 質問です。 変更の無い点 1."データー"シートのA4〜L列(データのある)最終行セルまでのデータに対して行う。 2."データー"シートのA列の値が指定値(〇)の行のみコピーする。 3."印刷"シートのA4以降に貼り付ける。 変更点 2."データー"シートのA列の値が指定値(@ABCD)の行のみコピーする。 4."印刷"シートをセットアップし、印刷する ここまでは良いですか? 印刷手順は、 ・指定値(@ABCD)の順でそれぞれを都度コピ・ペし、まとめて印刷するのですか? ・それとも@のみコピ・ペし印刷、Aのみコピ・ペし....、Dのみコピ・ペし印刷するのですか? "印刷"シートのZ1:Z4はどのセルにコピペしたいのですか? ・B4セルですか? "データー"シートからコピーされた書式を変えるのですか? ・B列は文字色変更。 ・A列の文字は表示しない(印刷範囲外なので不要では?)。 ・"印刷"シートは印刷以外にも使用するのですか? ・もし、コピ・ペデータが無かったら前のまま残すのですか?全て消すのですか? |
[195556] Re[3]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/26(22:45)) □U R L/ kazuo様 色々と申訳ありません。 名前を指定するのは良くないとは思っておりますが、過去のやり取りを リンクしにくいと思いまして、指名させていただきました。 dataシートの値は次のようです。 A B C D E F G H I J K L 1 あ あ あ あ あ あ あ あ あ あ あ 2 あ あ あ あ あ あ あ あ あ あ あ 3 あ あ あ あ あ あ あ あ あ あ あ 4 @ あ い う え お あ いう え お あ 5 あ い う え お あ いう え お あ 6 A あ い う え お あ いう え お あ 7 A あ い う え お あ いう え お あ 8 あ い う え お あ いう え お あ 9 B あ い う え お あ いう え お あ 10 B あ い う え お あ いう え お あ 11 あ い う え お あ いう え お あ 12 B あ い う え お あ いう え お あ 13 14 上記の場合、 (A列に@が1個あるので、印刷シートへは次のようになり、B1からL12の範囲を印刷 A B C D E F G H I J K L 1 あ あ あ あ あ あ あ あ あ あ あ 2 あ あ あ あ あ あ あ あ あ あ あ 3 あ あ あ あ あ あ あ あ あ あ あ 4 @ あ い う え お あ い う え お あ 5 6 ああ・・・(Z1からコピペしたあたい) 次に(A列にAが2個あるので、印刷シートへは次のようになり、B1からL12の範囲を印刷 A B C D E F G H I J K L 1 あ あ あ あ あ あ あ あ あ あ あ 2 あ あ あ あ あ あ あ あ あ あ あ 3 あ あ あ あ あ あ あ あ あ あ あ 4 A あ い う え お あ い う え お あ 5 A あ い う え お あ い う え お あ 6 7 ああ・・・(Z1からコピペしたあたい) 8 ああ・・・(Z2からコピペしたあたい) 9 次に(A列にBが3個あるので、印刷シートへは次のようになり、B1からL12の範囲を印刷 A B C D E F G H I J K L 1 あ あ あ あ あ あ あ あ あ あ あ 2 あ あ あ あ あ あ あ あ あ あ あ 3 あ あ あ あ あ あ あ あ あ あ あ 4 5 B あ い う え お あ い う え お あ 6 B あ い う え お あ い う え お あ 7 B あ い う え お あ い う え お あ 8 9 ああ・・・(Z1からコピペしたあたい) 10 ああ・・・(Z2からコピペしたあたい) 11 ああ・・・(Z3からコピペしたあたい) A列にC、Dがあれば同じように繰り返し、なければ@印刷、A印刷、B印刷で終了です。 @で終了とか@とAで終了とか変動します。入れてもD以上はないと思っています。 よろしくお願いいたします。 |
[195560] Re[4]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/27(14:58)) □U R L/ 3行目まではよくわからないので、記載しておりません。 書式についても回答無いので、指定しておりません。 該当データが無い場合は以前のままとしています。 Range("Z1:Z4").Copy →B説明図の.Range("Z1:Z3").Copyとしています。 印刷範囲は上記ペーストした行までとしています。 Sub main() Dim cSt As String Dim i As Long Dim rw As Long Dim dSh As Worksheet Dim pSh As Worksheet Dim dRng As Range cSt = "@ABCD" Set dSh = Worksheets("data") Set pSh = Worksheets("印刷") pSetUp pSh With dSh .AutoFilterMode = False For i = 1 To Len(cSt) .Range("A3:L4").CurrentRegion.AutoFilter 1, Mid$(cSt, i, 1) rw = 4 - .AutoFilter.Range.Row On Error Resume Next Set dRng = Nothing Set dRng = .AutoFilter.Range.Offset(rw) _ .Resize(.AutoFilter.Range.Rows.Count - rw).SpecialCells(xlCellTypeVisible) On Error GoTo 0 If dRng Is Nothing Then Exit For 印刷 pSh, dRng Next .AutoFilterMode = False End With End Sub Private Sub 印刷(sh As Worksheet, dRng As Range) With sh .Range("A4", .Cells(.Rows.Count, "A")).ClearContents dRng.Copy .Range("A4") .UsedRange.Offset(.Cells(.Rows.Count, "A").End(xlUp).Row).EntireRow.Delete .Range("Z1:Z3").Copy .Cells(.Rows.Count, "B").End(xlUp).Offset(2) .PageSetup.PrintArea = .Range("L1", .Cells(.Rows.Count, "b").End(xlUp)).Address ' .PrintOut Preview:=True .PrintOut ActivePrinter:="AAA" '私には無い End With End Sub Private Sub pSetUp(sh As Worksheet) Application.PrintCommunication = False With sh.PageSetup .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0.75) .BottomMargin = Application.InchesToPoints(0.55) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 '私のドライバーには無い .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA5 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Application.PrintCommunication = True End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195561] Re[5]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/27(22:40)) □U R L/ kazuo様 本当にありがとうございます。 後、1点だけお願いいたします。 T1とU1かセルらZ4セルに関数をいれてあります。 T1セルに=IF($C$4="","",$C$4) U1セルに=IF($H$4="","",$H$4) U2セルに=IF(($V$2<>"")+($W$2<>"")+($X$2<>"")<1,"",$H$5) U3セルに=IF(($V$3<>"")+($W$3<>"")+($X$3<>"")<1,"",$H$6) U4セルに=IF(($V$4<>"")+($W$4<>"")+($X$4<>"")<1,"",$H$7) V1セルに=IF($A$4="","",(IF(AND($J$4>$P$1,$J$4<$P$1+50),"迫ってます。",IF(AND($J$4<$P$1,$J$4>0),"切れです。","")))) V2セルに=IF($A$5="","",(IF(AND($J$5>$P$1,$J$5<$P$1+50),"迫ってます。",IF(AND($J$5<$P$1,$J$5>0),"切れです。","")))) V3セルに=IF($A$6="","",(IF(AND($J$6>$P$1,$J$6<$P$1+50),"迫ってます。",IF(AND($J$6<$P$1,$J$6>0),"切れです。","")))) V4セルに=IF($A$7="","",(IF(AND($J$7>$P$1,$J$7<$P$1+50),"迫ってます。",IF(AND($J$7<$P$1,$J$7>0),"切れです。","")))) W1セルに=IF($A$4="","",IF(AND($K$4>$P$1,$K$4<$P$1+50),"迫ってます。",IF(AND($K$4<$P$1,$K$4>0),"切れです。",""))) W2セルに=IF($A$5="","",IF(AND($K$5>$P$1,$K$5<$P$1+50),"迫ってます。",IF(AND($K$5<$P$1,$K$5>0),"切れです。",""))) W3セルに=IF($A$4="","",IF(AND($K$6>$P$1,$K$6<$P$1+50),"迫ってます。",IF(AND($K$6<$P$1,$K$6>0),"切れです。",""))) W4セルに=IF($A$4="","",IF(AND($K$7>$P$1,$K$7<$P$1+50),"迫ってます。",IF(AND($K$7<$P$1,$K$7>0),"切れです。",""))) Y1セルに=IF($A$4="","",IF(AND($G$4>$P$1,$G$4<$P$1+50),"提出願います。",IF(AND($G$4<$P$1,$G$4>0),"切れです。",""))) Y2セルに=IF($A$5="","",IF(AND($G$5>$P$1,$G$5<$P$1+50),"提出願います。",IF(AND($G$5<$P$1,$G$5>0),"切れです。",""))) Y3セルに=IF($A$4="","",IF(AND($G$6>$P$1,$G$6<$P$1+50),"提出願います。",IF(AND($G$6<$P$1,$G$6>0),"切れです。",""))) Y4セルに=IF($A$4="","",IF(AND($G$7>$P$1,$G$7<$P$1+50),"提出願います。",IF(AND($G$7<$P$1,$G$7>0),"切れです。",""))) Z1セルに=IF($U$1="","",$Y$1&$U$1&"の"&$V$1&$W$1&$X$1&"ご提出お願い致します。") Z2セルに=IF($U$2="","",$Y$2&$U$2&"の"&$V$2&$W$2&$X$2&"ご提出お願い致します。") Z3セルに=IF($U$3="","",$U$3&"の"&$V$3&$W$3&$X$3&"ご提出お願い致します。") Z4セルに=IF($U$4="","",$U$4&"の"&$V$4&$W$4&$X$4&"ご提出お願い致します。") 下記VBAを実行させると、U2からZ4の関数のセル値が不明になりセル値がREF!となり、U2からZ4セルが#REF!表示になってしまいます。 後、@の場合B5(本当1行空けてB6がいいです)にZ1からZ4をコピペした値の文字色が白色になってしまい文字が見えなくなってしまいます。 .UsedRange.Offset(.Cells(.Rows.Count, "A").End(xlUp).Row).EntireRow.Delete 本当に申し訳ありませんが、よろしくお願いいたします。 |
[195567] Re[6]: 〇のある列以外を削除して印刷シート part3- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/28(20:24)) □U R L/ 何故、質問やアドバイスに答えない。 何故、言い訳をする。 資源を有効活用出来るかは、ゆきなさんのスキルです。 Delete → clear 私はここまでとします。 |
[195573] Re[7]: 〇のある列以外を削除して印刷シート part3- ■ / 記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/30(09:09)) □U R L/ kazuo様 申し訳ありませんでした。 質問を読み落としていた所がありました。 説明がうまく伝えられないので、私なりの返答していましたが、それが 間違っていました。 今後は気をつけます。 ありがとうございました。 |
このトピックに書きこむ |
---|