
顧客情報のマクロを組んでおります。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
指定した条件で行セルを非表示にするVBAについて
Visual Basic(VBA)
-
-
4
エクセルで複数の特定の文字列をふくむ行を非表示にしたい。
Excel(エクセル)
-
5
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
6
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
7
エクセルマクロ 特定の文字列を含む行のみを残す (マクロ修正)
Excel(エクセル)
-
8
エクセルVBAのEntireRow.Hiddenをスピードアップしたいのですが・・・。
Excel(エクセル)
-
9
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
10
エクセルで特定の数字等を表示させない方法ってあるのでしょうか?
Excel(エクセル)
-
11
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
12
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
13
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
14
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"7663922"
Excel(エクセル)
-
15
VBAで最終行まで罫線を掛ける方法
Excel(エクセル)
-
16
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.net
-
VBA 複数列コンボボックス 値の...
-
重複行削除のマクロ
-
エクセルで階層図を作る方法
-
WPSOffice_マクロの有効化について
-
【マクロ】元データと同じお客...
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
-
複数のマクロボタンをまとめて...
-
エクセルのvbaにて thisworkboo...
-
【Excel VBA】マクロでExcel自...
-
エクセル;相対パスを絶対パスへ...
-
エクセル ボタンに設定したマク...
-
エクセルの、記録を終了したマ...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
セルに入力するたびにマクロを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
マクロで最終行を取得してコピ...
-
VB.net
-
列から特定の文字列検索→該当以...
-
Excel VBAでオートフィルタで抽...
-
【VBA】条件に一致しない行を削...
-
エクセルのデータがない行には...
-
【マクロ】A列最終行までを、カ...
-
Excel97 指定した行だけマク...
-
エクセルのVBAで指定した行数の...
-
各個体に対する平均値の自動計...
-
Excel マクロ 検索結果を別シ...
-
EXCEL VBAでA列にある空白行よ...
-
オートフィルターの複数条件検...
-
エクセルで階層図を作る方法
-
エクセルで空白行を削除する ...
-
【VBA】条件に一致しない行を削...
-
VBAで入力の結果を他のセルに反...
-
マクロで教えてください。
-
Access2003レポート:最終ペー...
おすすめ情報