顧客情報のマクロを組んでおります。
2列目 3列目
総務課 鈴木一郎
営業課 山本一郎
庶務課 田中一郎
営業課 本田一郎
…といったデータがあります。
「総務課」というボタンをおしたら、
2行目の中から、「総務課」という文字列を探し出し、
(オートフィルタの作業そのものなのですが)それ以外の行は「隠す」にしたいと思っております。
総務課の人間だけを表示するようなマクロにしようと。
これまでオートフィルタを使用したマクロを組んでいたのですが、
どうもオートフィルタボタンが表示されてしまうと、表が見づらくなるので、美しくありません…。
そこで、このようなマクロを作ろうと考えました。
とくに「ROW2」から特定の文字列を検索して…
という下りがわかりません。
アドバイスをいただけると、ありがたく思います。
どうぞ、よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
No.1・2です。
追加質問について・・・
>For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
>i は 2から エクセルの最終行までのセル・・・などといった意味でしょうか?
>どうして、ここで2からなのでしょうか?
は質問内に
>2行目の中から、「総務課」という文字列を探し出し・・・
とありますので、データは2行目以降にあるという前提のコードです。
次に
>2 to cells(rows.count, 2) … 特にここの意味を教えていただけると、応用ができるので助かるのですが…。
この意味は2行目~2列目(B列)の最終行までという意味です。
cells(rows.count, 2)は cells(行番号,列番号)と記述します)
当然
>For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
にしても同様の結果になります。
A列に関する記述がなかったので、
確実にデータがあるB列に最終行までループさせています。
A列にも必ずデータがある!ということであれば「2」の部分を「1」に変更しても
なんら問題はありません。
この程度で参考になりますかね?m(_ _)m
No.3
- 回答日時:
>総務課の人間だけを表示するようなマクロ
一番シンプルとしては
sub macro1()
dim h as range
for each h in range("B2:B" & range("B65536").end(xlup).row)
h.entirerow.hidden = h <> "総務課"
next
end sub
といったカンジで。
でもこんな風に一行ずつ総舐めするのは大変遅いので、リストが長くなってくると全くお勧めしません。
エクセルの機能を使うと、たとえばこんな具合でも出来ます。
1行目にタイトル行
2行目にデータとして
sub macro2()
dim t as string
dim c as range
’入力
t = inputbox("what you show")
if t = "" then
msgbox "OUT"
exit sub
end if
’準備
application.screenupdating = false
rows.hidden = false
activesheet.showalldata
set c = activesheet.cells.specialcells(xlcelltypelastcell)
’絞り込み
cells(1, c.column + 2) = range("B1").value
cells(2, c.column + 2) = t
range(range("A1"), c).advancedfilter _
action:=xlfilterinplace, _
criteriarange:=cells(1, c.column + 2).resize(2, 1), _
unique:=false
’片づけ
cells(1, c.column + 2).entirecolumn.delete shift:=xlshifttoleft
application.screenupdating = true
end sub
インプットボックスというものの存在を初めて知りました。
このようなマクロを、本当にどうもありがとうございます。
ただ…上手く行きませんでした…。
その後のいろいろな数式も、にわかには理解できず…
もう少し勉強を積んでから、再チャレンジしようと思います。
ご回答、どうもありがとうございました!
No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
前回のコードで間違いがありました。
>If Cells(i, 2) = "総務課" Then
の行の等号を不等号にして
>If Cells(i, 2) <> "総務課" Then
に訂正してください。
前回のコードでは「総務課」の行が非表示になってしまいます。
何度も失礼しました。m(_ _)m
了解です。
ありがとうございます!
補足の質問についてですが、
意味はまだわかりませんが、とにかく応用はできました!
ご回答、どうもありがとうございました!
No.1
- 回答日時:
こんにちは!
結局オートフィルタのような操作がご希望でオートフィルタの下向き▼を表示したくない!
というコトですよね?
一例です。
Dim i As Long
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
If Cells(i, 2) = "総務課" Then
Rows(i).Hidden = True
End If
Next i
こんな感じではどうでしょうか?
※ このままでは行が非表示のままですので、別マクロとして
Sub 再表示()
Rows.Hidden = False
End Sub
といった再表示のマクロを準備しておいた方が良いと思います。
参考になりますかね?m(_ _)m
どうも、補足までいただき、ありがとうございます!
恐れ入りますが、
この数式の意味を、解説していただくことはできますでしょうか?
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
i は 2から エクセルの最終行までのセル・・・などといった意味でしょうか?
どうして、ここで2からなのでしょうか?
2 to cells(rows.count, 2) … 特にここの意味を教えていただけると、応用ができるので助かるのですが…。
どうも、ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) Excel教えてください。 下記のことが出来るのは、マクロですか?条件付き書式でしょうか、、?知恵を 5 2022/11/12 09:33
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
指定した条件で行セルを非表示にするVBAについて
Visual Basic(VBA)
-
-
4
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
5
EXCEL VBA 指定範囲内で特定の列に空白セルを含む行を非表示
Excel(エクセル)
-
6
<EXCEL> セルが非表示になったらチェックボックスも非表示にする方法
Excel(エクセル)
-
7
【Excel VBA】条件に合った行の表示・非表示を行う方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
【VBA】条件に一致しない行を削...
-
エクセルのデータがない行には...
-
EXCEL VBAでA列にある空白行よ...
-
数値に見えるものはすべて数値...
-
excel2021で実行できないマクロ...
-
Excelで、マウスで範囲を選択し...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
条件に合った行を削除するマク...
-
空白を複数行一気に挿入するには?
-
マクロにて指定の文字間の文字...
-
VBAで入力の結果を他のセルに反...
-
関数入りの行挿入。。。上書き...
-
列から特定の文字列検索→該当以...
-
VBAでの重複データに色付け
-
エクセルで階層図を作る方法
-
エクセルで行を挿入して小計合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
エクセルのデータがない行には...
-
【VBA】条件に一致しない行を削...
-
数値に見えるものはすべて数値...
-
Excel VBAでオートフィルタで抽...
-
【VBA】条件に一致しない行を削...
-
マクロで最終行を取得してコピ...
-
Excel97 指定した行だけマク...
-
Excel VBA オートフィルタの結...
-
【至急】Excel 同一人物の情報...
-
エクセルのVBAで指定した行数の...
-
VBAで入力の結果を他のセルに反...
-
エクセルで階層図を作る方法
-
VBAで特定の行と一つ上の行を削...
-
エクセルVBAでデータの蓄積方法?
-
VB.net
-
Excel マクロ 検索結果を別シ...
-
VBAでの重複データに色付け
-
EXCEL VBAでA列にある空白行よ...
-
Access2003レポート:最終ペー...
おすすめ情報