
No.1ベストアンサー
- 回答日時:
こんばんは!
一例です。
Sub Sample1()
Dim i As Long, j As Long
Dim myRng1 As Range, myRng2 As Range
For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, "B") = "非表示" Then
If myRng1 Is Nothing Then
Set myRng1 = Cells(i, "B")
Else
Set myRng1 = Union(myRng1, Cells(i, "B"))
End If
End If
Next i
For j = 8 To Cells(2, Columns.Count).End(xlToLeft).Column
If Cells(2, j) = "非表示" Then
If myRng2 Is Nothing Then
Set myRng2 = Cells(2, j)
Else
Set myRng2 = Union(myRng2, Cells(2, j))
End If
End If
Next j
If Not myRng1 Is Nothing Then
myRng1.EntireRow.Hidden = True
End If
If Not myRng2 Is Nothing Then
myRng2.EntireColumn.Hidden = True
End If
End Sub
※ 余計なお世話かもしれませんが、再表示のコードも必要なコトがあるかもしれませんので
一緒に記載しておきます。
↓のコードが再表示です。
Sub 再表示()
With ActiveSheet
.Rows.Hidden = False
.Columns.Hidden = False
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
BとCの記入間違い失礼いたしました。
これは理想の動作通りです。ありがとうございます!
こんな事も出来ないですか?等の追加リクエスト・・・・も思い浮かびません!
No.3
- 回答日時:
「値が"非表示"」とのことですが、これをマクロで操作しやすい値に変えることが出来るのであれば、ロジックを簡単にすることが出来ます。
例えば、非表示にしたいセルは空白(空白でない行が残る)であれば、次のようなロジックで実現できます。
Sub Macro1()
With Range(Cells(2, "H"), Cells(2, Columns.Count))
.SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
End With
End Sub
また、エラーのセルを非表示にするのも同じような方法で可能です。ちなみに「条件を選択してジャンプ」で選択できる条件であれば同じ方法が使えます。
元々空白の場所もあり、それらが全て非表示になってしまっては困るので、
それを区別するために"非表示"という文字にしたいと思いました。
でも空白のみの判別だとシンプルですね。ありがとうございます!
そういう用途の時に重宝しそうです!
No.2
- 回答日時:
No.1です。
投稿後気づいたのですが、
質問文ではB列となっていますが、タイトルはC列ですね。
B列ではなく、C列に「非表示」という場合は
前回のコードはB列を検索しています。
コード内の「"B"」というところをすべて「"C"」に変更してください。
※ 列方向に関しては問題ないと思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Visual Basic(VBA) VBAで列の再表示設定 1 2023/04/25 10:19
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定行の色を変えたい(FlexGrid)
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
”戻り値”が変化したときに、マ...
-
VBAマクロで結合セルを含む列に...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
Application.Matchで特定行の検索
-
Excel VBAで、 ヘッダーへのセ...
-
【VBA】シート上の複数のチェッ...
-
ExcelVBA データを消去すると罫...
-
【VBA】指定したセルと同じ値で...
-
VBAで指定した複数のセルの値を...
-
プラスの数をマイナスにしたい...
-
VBAでセルをクリックする回...
-
VBA 単語群の置き換え。 エクセ...
-
TODAY()で設定したセルの日付...
-
エクセルシートでハンドカーソ...
-
VBA実行後に元のセルに戻りたい
-
任意フォルダから画像をすべて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報