
こんばんは、下記のURLで教えて頂いた方法で大きなマトリックス(A1:CR6000)が出来ました
http://oshiete.goo.ne.jp/qa/7463440.html
質問:
タイトルは、行1、行2とタイトルが入っていて、データ領域(A3:CR6000)まであり、データ量は増えて行きます。
オートフィルターで、A列データ抽出時、B3:CR***範囲内でデータの無い列、行があります、
タイトル列も含めて、列、行を非表示にする事は可能でしょうか?ご教授下さい
No.1ベストアンサー
- 回答日時:
こんばんは!
前回投稿した者です。
実は投稿後気になっていたコトが今回の質問だと思います。
前回のコードでは1行に1データ表示になってしまいますので、
あまりに空白セルが多くなりすぎているのではないかと・・・
もう一度コードを載せておきます。
今回もAlt+F11キー → 画面左下の「This Workbook」をダブルクリックして
↓のコードをコピー&ペーストしてマクロを試してみてください。
※ 単純に空白セルを削除するだけなら簡単なのですが、
Sheet2のB列以降に1データでもあればその行の空白セルは残しておく!
という作業が必要になると思います。
そこで今回はSheet3を作業用のSheetとして使っていますので、
Sheet見出しには「Sheet3」まで表示しておいてください。
Sheet3はまっさらなSheetだとします。
Sub test2()
Dim i, j, k, L, M As Long
Dim ws1, ws2, ws3 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
Set ws3 = Worksheets("Sheet3")
Application.ScreenUpdating = False
k = ws2.Cells(Rows.Count, 1).End(xlUp).Row
j = ws2.Cells(2, Columns.Count).End(xlToLeft).Column
If k > 2 Then
ws2.Rows(3 & ":" & k).ClearContents
End If
If j > 1 Then
Range(ws2.Cells(2, 2), ws2.Cells(2, j)).ClearContents
End If
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(ws2.Rows(2), ws1.Cells(i, 3)) = 0 Then
ws2.Cells(2, Columns.Count).End(xlToLeft).Offset(, 1) = ws1.Cells(i, 3)
End If
If WorksheetFunction.CountIf(ws3.Columns(1), ws1.Cells(i, 1)) = 0 Then
L = L + 1
ws3.Cells(L, 1) = ws1.Cells(i, 1)
End If
Next i
j = ws2.Cells(2, Columns.Count).End(xlToLeft).Column
Range(ws2.Cells(2, 2), ws2.Cells(2, j)).Copy Destination:=ws3.Cells(1, 3)
For L = 1 To ws3.Cells(Rows.Count, 1).End(xlUp).Row
For j = 3 To ws3.Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If ws1.Cells(i, 1) = ws3.Cells(L, 1) And ws1.Cells(i, 3) = ws3.Cells(1, j) Then
ws3.Cells(Rows.Count, j).End(xlUp).Offset(1) = ws1.Cells(i, 2)
End If
Next i
Next j
M = ws3.UsedRange.Rows.Count
j = ws3.Cells(1, Columns.Count).End(xlToLeft).Column
Range(ws3.Cells(2, 2), ws3.Cells(M, 2)) = ws3.Cells(L, 1)
Range(ws3.Cells(2, 2), ws3.Cells(M, j)).Cut Destination:= _
ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next L
For k = ws2.Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
If WorksheetFunction.CountA(ws2.Rows(k)) = 1 Then
ws2.Rows(k).Delete
End If
Next k
ws3.Cells.Clear
Application.ScreenUpdating = True
End Sub
※ For~Nextを多用していますので、時間がかかるかもしれません。
※ 質問では「タイトル行・列も含めて非表示・・・」となっていますが、タイトル行はそのままにしています。
お役に立ちますかね?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) スプレットシートでA1~G1にデータが入っていて、 それを1列ずつ空けて表示する関数がわかる方いまし 4 2022/08/25 09:39
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既婚で現役のAV女優さんは居ま...
-
VBA ソートすると、1、11、...
-
別ブックの空白行に転記
-
射精したあとの匂いって他人に...
-
1日3回セックスって多いですか...
-
先日彼氏とラブホに行ったら電...
-
おっぱいを舐める
-
初めて彼女とカーセックスをし...
-
2人でエッチできる場所を探して...
-
普通に疑問なんですが Hの時に...
-
彼氏の精液の匂いが無味無臭(...
-
女性は電マ、ローター、バイブ...
-
精液のにおいがほとんど無いの...
-
夫にセックスがないのなら他人...
-
女性のあそこが緩い、きついと...
-
彼女をオカズにして抜くのって...
-
彼のペニスが挿入時に柔らかく...
-
こないだ、彼氏とラブホ行った...
-
奥さんのことが大好きで、仲良...
-
女は巨根が好きというのは都市...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既婚で現役のAV女優さんは居ま...
-
VBA ソートすると、1、11、...
-
CDレコの曲の消し方を教えてく...
-
VBAが止まります。
-
シンナーの夏型と冬型の違いは?
-
直線コネクタの中央にコネクタ...
-
相対参照から絶対参照に変換す...
-
EXCELで3行を一組にして結合す...
-
Word 黒塗り部分の文字のみ削除...
-
エクセル最終行の下に貼り付け
-
最適な組み合わせの自動計算
-
サイドビジネスやるべきか?
-
【VBA】文字列の場所入れ替え
-
データの平均を1分値にまとめる...
-
エクセルマクロで複数条件下で...
-
DNSの設定及びnslookup時の応答...
-
4次元について
-
ワイドナショーのB面で
-
オートフィルター抽出時データ...
-
別ブックの空白行に転記
おすすめ情報