| このトピックに書きこむ |
|---|
| Re[6]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。 | |
|---|---|
[195515] Re[6]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■ □投稿者/ ゆきな -(2023/01/22(20:35)) □U R L/ kazuo様 ありがとうございました。 また、お恥ずかしい今頃になって列と行を逆だと思っていました。 間違った説明で、説明も下手ですみませんでした。 勉強になりました。 感謝します。助かりました。 | |
[195513] Re[5]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/22(14:48)) □U R L/ また、訂正です。
今回のオートフィルターって項目行は何でも良かったのでデータ的にはシートをいじらずに済みます。
行の削除も同じです。
Sub フィルター貼り付け()
With Worksheets("データーシート")
.Range("A3:L4").CurrentRegion.AutoFilter 1, "〇"
.AutoFilter.Range.Offset(4 - .AutoFilter.Range.Row).Copy Worksheets("印刷シート").Range("A4")
.AutoFilterMode = False
End With
End Sub
この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[195511] Re[4]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/22(14:02)) □U R L/ >A行で
>行以外
>行の削除
A行のなかにA行以外の行があるのですか?
まず、この認識をなんとかして下さい。
Sub 選択貼り付け()
Dim rR As Range
Dim r As Range
Dim fRng As Range
Set rR = Worksheets("データーシート").Range("B4").CurrentRegion
Set rR = Intersect(rR, rR.Offset(4 - rR.Row))
For Each r In rR.Columns("A:A").Cells
If r.Value = "〇" Then
If fRng Is Nothing Then
Set fRng = r
Else
Set fRng = Union(fRng, r)
End If
End If
Next
If Not fRng Is Nothing Then
fRng.EntireRow.Copy Worksheets("印刷シート").Range("A4")
End If
End Sub
Sub フィルター貼り付け()
With Worksheets("データーシート")
.Rows("4:5").Insert
.Range("A5").Value = "項目"
.Range("A5").CurrentRegion.AutoFilter 1, "〇"
.AutoFilter.Range.Offset(1).Copy Worksheets("印刷シート").Range("A4")
.Rows("4:5").Delete
End With
End Sub
Sub 行の削除()
With Worksheets("コピーシート")
.Range("A3").Value = "項目"
.Range("A3").CurrentRegion.AutoFilter 1, "<>〇"
.AutoFilter.Range.EntireRow.Delete
.Rows(3).Insert
End With
End Sub
この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[195509] Re[3]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/21(22:06)) □U R L/ 説明が下手ですみません。 下記のように入力してあります。 A行をソートすればA4、A5、A6行に〇が入っている行が3行になるので、A7〜A9の行を削除すれば いいのですが、セル毎に罫線で色わけしているので、罫線の色が変わってしまいます。 ですので、 A行で〇が入力してある行以外を、行の削除を行い削除するVBAできますでしょうか? それから先は私でなんとかします。 よろしくお願いいたします。 A B C 4 あ い 5〇 あ い 6 あ い 7〇 あ い 8〇 あ い 9 あ い | |
[195508] Re[2]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/21(12:47)) □U R L/ 連投失礼。 データシートに手を加えて良いなら、 項目行を追加し、〇でフィルター後コピペし、項目行を削除します。 | |
[195506] Re[1]: 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/01/21(12:05)) □U R L/ まずは、excelの行・列をキチンと理解しましょう。 Excel の仕様と制限 で検索 >ワークシートの最大サイズは 1048576 行× 16384 列です データシートの該当行を手動でコピペするならどうしますか? 私なら5行目を選択し、Ctrlキーを押しながら7行目と8行目を選択し、Ctrlキーを離し、 Ctrl+c(コピー)を押し、 印刷シートのA4を選択し、Ctrl+v(貼り付け)します。 VBAにするなら、A列を4行目から最終行まで見て、〇のあるセルをUnionでセル集合を作り、 EntireRowで拡張(さらに必要ならA:L列とIntersect)したセル集合を Destinationを印刷シートのA4セルとしてCopyメソッドを使い記載します。 | |
[195502] 〇のある列以外を削除して印刷シートに貼り付けて印刷を行いたいです。- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ゆきな -(2023/01/19(22:54)) □U R L/ 罫線もコピーしたいので、ソートがすると罫線が変わってしまいますので、 下記のような方法しか思い当たりません。 何かもっとよい方法があれば教えて頂きたいです。 下記のような感じに入力されており、「データーシート」とします。 A B C D E F G H I J K L 4 あ い ウ え お か き く け こ さ 5〇 あ い ウ え お か き く け こ さ 6 あ い ウ え お か き く け こ さ 7〇 あ い ウ え お か き く け こ さ 8〇 あ い ウ え お か き く け こ さ 9 あ い ウ え お か き く け こ さ 1.A4〜L9セルを全てコピーして、「コピーシート」のA4にセルに貼り付けます。 2.A行の〇のある列以外のセルを削除させると下記のようになると思います。 A B C D E F G H I J K L 4〇 あ い ウ え お か き く け こ さ 5〇 あ い ウ え お か き く け こ さ 6〇 あ い ウ え お か き く け こ さ 3.上記の3行を「印刷シート」のA4セルにコピーします。(〇の数により行数は変化) 説明がわかりにくいとは思いますが、宜しくお願い致します。 win10 office2016 | |