No.10ベストアンサー
- 回答日時:
自動の意味がはっきりしないので、2つ書いてみました。
1.セルに『無し』と力すれば機能するマクロ
2.『無し』の入力済みのセルを非表示にするマクロ
両方とも、Sheet1を対象にし、Sheet1 のコードウインドウに貼り付けています。
'// ■ セルに『無し』と力すれば機能するマクロ ■
'// C列の3行目以降に『無し』を入力すると、その行を非表示にする
'// 『無し』をコピーして複数セルに貼り付けても可
'// ※しかし、あまり多数のセルを操作すると重くなるので、
'// 100個以上は処理しないようにしています
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 100 Then Exit Sub '// 多数のセルの修正は無視する
Dim rg As Range '// セル
For Each rg In Target
If rg.Column = "3" Then '// C列なら
If rg.Value = "無し" Then
Rows(rg.Row).Hidden = True
'// 下2行を有効にすると、セルの『無し』をクリアすると行が表示される
'Else
' Rows(rg.Row).Hidden = False
End If
End If
Next
End Sub
'// ■ 『無し』の入力済みのセルを非表示にする(マクロで一括処理) ■
'// C列で3行目から下のセルに『無し』があれば、行を非表示にする
Sub selectRowHidden()
Dim rw As Long '// 行カウンタ
For rw = 3 To Range("C65536").End(xlUp).Row
If Range("C" & rw).Value = "無し" Then
Rows(rw).Hidden = True
End If
Next
End Sub
二つのパターンを記述して下さってありがとうございます!
書き方が悪くてすみませんでした、私が求めていたやり方は、
>■ 『無し』の入力済みのセルを非表示にする(マクロで一括処理) ■
こちらの方でした!まさにぴったりの方法です!
でも、
>■ セルに『無し』と力すれば機能するマクロ ■
これもとてもいいと思います!
どちらにするのかはリクエスターのかたと相談して決めてこうと思います!
nishi6さん!本当にありがとうございましたm(_ _)m
また、皆様!アイデアやお力をお貸し頂きましてありがとうございました!
No.9
- 回答日時:
#7の補足
RANGE(C,n)は、厳密に表記すれば、RANGE("C"& n)で、nを3からデータが存在する限りカウントアップして"無し"かどうかチェックし"無し"なら当該行を削除する。ただし行を削除した場合、カウントを1つ下げるのを忘れないこと。
しかし、オートフィルタが簡単でしょうね。
No.8
- 回答日時:
#5です。
>実は、3行目以降のセルに「無し」と書いてある行、「有り」と書いてある行、「空白」のある行があるとして
「無し」「有り」「空白」の入っている列はC列(だけ)ですよね。
●一部訂正してみます。
Sub test01()
Range("A65536").End(xlUp).Select
d = Selection.Row
MsgBox d
For i = 3 To d
If Cells(i, "C") = "無し" Then
Cells(i, "C").EntireRow.Hidden = True
End If
Next
End Sub
とMsgbox dを入れて、実行すると表示(数字)はいくらと出ますか。最下行の番号数字ですか。
●「無し」とは入っている行だけ非表示にしてますが
表のC列の「無し」の文字前後にスペースなどが入っていませんか。
昨日は、もうヘトヘトになってしまいましたので、
ご飯を食べてから早く寝てしまいました・・・、すみませんでした<(_ _)>
そして、改めてお礼申し上げます。
>「無し」「有り」「空白」の入っている列はC列(だけ)ですよね。
説明抜けてまして申し訳有りません。
そうですC列での話です。
今いろいろ探り探りと実験をしつつ進めていますので、
本番のファイルを作る時はD列とかE列になるかも
しれませんが、それはその都度コードを「C」から
「D」とかに変えてみてやってみようと思ってました。
例えばD列にしたい場合は、コードを
If Cells(i, "D") = "無し" Then
Cells(i, "D").EntireRow.Hidden = True
という感じよろしかったですよね?
>Msgbox dを入れて、実行すると表示(数字)は
>いくらと出ますか。最下行の番号数字ですか。
まず、マクロを実行してみましたら、ダイアログが
出てきまして、常に「1」の数字と「OK」ボタンが
出てきました!!?
数字とはこの「1」のことですか?
>表のC列の「無し」の文字前後にスペースなどが
>入っていませんか。
C列の「無し」は中央揃えなどしてみたりしてますが、スペースを入れたりはしてません。
何か参考になりますでしょうか?
No.7
- 回答日時:
C列3行目以降に「無し」となってれば、その行全体を削除したいということですね。
マクロでRANGE(C,n)を順に見て(nを3からデータ長分ループ)「無し」ならその行を削除することも可能です。
しかし難しく考えず、オートフィルタでC列が「無し」と等しくないとすればいかがでしょう。「無し」の行が非表示になります。しかし3行目以降というのが良く分かりませんが・・・。1~2行目に「無し」があっても非表示にしないという意味でしょうか。
アドバイスありがとうございます!
>C列3行目以降に「無し」となってれば、
>その行全体を削除したいということですね。
実は、これに似た質問を昨日したのですが、もう一つのパターンとして「非表示」の方法も知っておきたかったので改めて質問させて頂きました。最終的にどっちにしようか決めようと思いまして・・・
>オートフィルタでC列が「無し」と等しくないと
>すればいかがでしょう。「無し」の行が非表示に
>なります。
オートフィルタの案もとても名案だと思いましたので、候補に入れています。ですが、VBAの勉強のためにも(というよりVBAの勉強の動機づけも深めるためにかな^^;)、「行」を非表示のやり方も完成させたかったのです。。
>しかし3行目以降というのが良く分かりませんが・・・。
>1~2行目に「無し」が
>あっても非表示にしないという意味でしょうか。
「3行目以降」というのは、例えばって話だったのですが、1~2行目は「項目」などで使うかな・・・、っていうのをイメージして「3行目以降」ということにしました。なので状況に応じてコードは4行目からとか、5行目からとかに変えようと考えていました。
No.6
- 回答日時:
条件付書式を使って、セルの内容が「無し」なら、フォントの色を白(バックの色)にすると見かけ上非表示になります。
ご返信ありがとうございます。
今回行を詰める方法を探していましたが、miwakiさんのアドバイスも今後の参考にさせて頂きます<(_ _)>
No.5
- 回答日時:
#2です。
>セルを選択しないで(マクロを実行し「無し」の文字がある行を)非表示にする方法まではさすがにないでしょうか
セル選択を使用者に許した方が、自由度が上がると思いまして、そうしました。
「無し」の入った列は、例えば列Cとか1列だけとし第3行目以下データ空白行などはない、「リスト形式」の表であるのなら
Sub test01()
d = Range("A3").CurrentRegion.Rows.Count
For i = 3 To d + 2
If Cells(i, "C") = "無し" Then
Cells(i, "C").EntireRow.Hidden = True
End If
Next
End Sub
この回答への補足
家に帰ってさっそくやってみました!
ですが、3行目だけしか非表示にならないのです(T_Y)
実は、3行目以降のセルに「無し」と書いてある行、「有り」と書いてある行、「空白」のある行が
あるとして、「無し」の行だけを非表示にして
(マクロ+ボタンなども使って自動化して)周りの
人も見やすく使いやすくしたいという要望があり、
挑戦しているところです^^;;
無理ならしかたないと言ってくれましたが、
私としてはいいものを使ってもらいたいという
気持ちもありまして…
マクロの記録の仕方やボタンの作り方・登録の仕方は
わかります。ですがVBAの分野までになるとまだ・・・
お手が空きましたら今一度、ご助言頂けないでしょうか?imogasiさんの記事が今回一番近い気がするのです<(_ _)>お願いします
No.3
- 回答日時:
内容を非表示とし、空白行として見せたいということであれば、
条件付き書式で可能だと思います。
3行目を選択して「ツール」から「条件付き書式」を選択肢。
「数式が」として「=$C3="無し"」として書式で文字色を
「白」とします。(背景色と同じにする。)
後は、書式コピーで次行以下にコピーすればOKです。
「非表示」というのが、その分行を詰めて表示したい、
ということであれば、この回答は無視して下さい。
アイデア感謝します<(_ _)>
ですが、リクエスターの希望と致しましては
>行を詰めて表示したい、
とのことでした。。
でも、この方法も、他の場面で役に立ってくるかもしれませんので一つの方法として心に留めておきます!(^0^)!
No.2
- 回答日時:
VBAで下記を標準モジュールに貼りつける。
Sub test01()
Dim cl As Range
For Each cl In Selection
If cl = "無し" Then
cl.EntireRow.Hidden = True
End If
Next
End Sub
「無し」が入っている・または入っていないか、を判別をする範囲を指定(2列以上でも可はテスト済み)して、
実行。
入っている行は非表示になります。
コマンドボタンをシートに貼りつけ、クリックイベントを
実行のキッカケにすることも出来ます。
いつもお世話になっております!
かなり、私の求めてた形に近いです!
セルを選択しないで(マクロを実行し「無し」の文字がある行を)非表示にする方法まではさすがにないでしょうか?
私もこれからエクセルの上級の資格を取得してからマクロ・VBAなども専門に勉強してみようと考えてるのですが、今の地点ですとあまりに難しすぎるので、出来ればお力をお貸し頂けないでしょうか?
よろしくお願い致しますm(_ _)m
No.1
- 回答日時:
自動でというのは無理です。
手動でも良いなら、作業用の列に
=IF(ISERROR(FIND("無し",C3)),"",1)
と入力し、必要行だけコピー。
その後オートフィルタをかけて非表示にするという手があります。
>作業用の列に
=IF(ISERROR(FIND("無し",C3)),"",1)
と入力し、
これを(C3のセルで)やってみたのですが、セルに入力してエンターを押しましたら何やら長いエラーが出てしまいます。。
また、色々試してみます!
アドバイスありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルのことで教えてください。 A1セルに、 別シートのA1セルが1のときは「A」、2のときは「B 4 2023/02/24 23:08
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセル セル内の文字数を超えたら自動的に折り返して表示 2 2023/07/24 05:32
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
エクセルで複数の特定の文字列をふくむ行を非表示にしたい。
Excel(エクセル)
-
条件に応じて特定の行を非表示にしたい
Excel(エクセル)
-
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
-
4
エクセルで特定の数字等を表示させない方法ってあるのでしょうか?
Excel(エクセル)
-
5
エクセルの特定の文字を表示、非表示に切り替えたい
Excel(エクセル)
-
6
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
7
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
8
エクセル:特定の文字が入った行のみ非表示にしたい
Excel(エクセル)
-
9
指定した条件で行セルを非表示にするVBAについて
Visual Basic(VBA)
-
10
列から特定の文字列検索→該当以外の「行」隠すマクロ
その他(Microsoft Office)
-
11
エクセルの複数のセルを一括で絶対参照にする方法
Excel(エクセル)
-
12
IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?
Excel(エクセル)
-
13
【Excel】 指定した文字を表示しない様にしたい。
Excel(エクセル)
-
14
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
15
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
16
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
17
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
18
急ぎ!色のついたセルを非表示に!!
Access(アクセス)
-
19
エクセル 指定した文字列を含む列を削除するには
Excel(エクセル)
-
20
値が入っているときだけ計算結果が表示されるようにするには・・?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】列と行の最後尾にジャ...
-
【Excel関数】UNIQUE関数で"0"...
-
Excel グラフのプロットからデ...
-
チェックボックスをクリックし...
-
特定の文字がある行以外を削除...
-
エクセル 上下で列幅を変えるには
-
【VBA】「同じ文字を含むセ...
-
結合されたセルをプルダウンの...
-
エクセルVBAのEntireRow.Hidden...
-
excelのデータで色つき行の抽出...
-
直近の5個の平均を求めたい
-
エクセルで特定の文字列が入っ...
-
excel 同じ番号のデーターを横...
-
罫線の斜線を自動で引くマクロ
-
アクティブになっている行をマ...
-
連続データが入った行の一番右...
-
excel 小さすぎて見えないセル...
-
Excelでカタカナ・ひらがな・英...
-
Excelで非表示のセルをとばして...
-
[EXCEL]ボタン押す→時刻が表に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
VBAで色の付いているセルの行削除
-
エクセル 上下で列幅を変えるには
-
結合されたセルをプルダウンの...
-
excelのデータで色つき行の抽出...
-
AのセルとB行を比較して、一致...
-
excel 小さすぎて見えないセル...
-
罫線の斜線を自動で引くマクロ
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
エクセルVBA 最終行を選んで並...
-
Excelでカタカナ・ひらがな・英...
-
Excelのフィルター後の一番上の...
-
エクセルVBA:データ端に画...
おすすめ情報