エクセル2007を使用して住所録を作成しています。
一行に1名ずつの情報(各列に氏名など)が入るようになっています。
A列にリスト番号・B列に氏名、といった感じで作成しています。
一覧表示だと列の数が多く個別の内容が分かりにくいため、
ユーザーフォームを使って1件ずつ詳細を見られるようにしました。
ユーザーフォームに付けたコマンドボタン「次」を押すと
順番(住所録リストの上から順)に個別の内容が表示されるように
したのですが、オートフィルタをかけてしまうと
非表示のリストもユーザーフォームに表示されてしまいます。
そこで、いくつかの参考書などを使って組んでみたのですが、
私の作ったものではコマンドボタン「次」を押すと
オートフィルタで表示されている一番下の
リストにユーザーフォームの内容が飛んでしまいます。
どのようにすれば、オートフィルタで表示されているリストのみを
順番にユーザーフォームに表示ができるのでしょうか?
私が作ったものです。↓
Private Sub cmd次_Click()
Dim r As Range, rr As Range, rs As Range
If Not Worksheets("名簿").AutoFilterMode Then
データ行 = データ行 + 1
Else
Set r = Worksheets("名簿").Range("A3", Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
For Each rr In r
For Each rs In rr.Areas
データ行 = rs.Row
Next rs
Next
End If
表示データ変更
End Sub
このような質問で分かりにくいようでしたらすみません。
どなたかご教授いただければ幸いです。
No.2ベストアンサー
- 回答日時:
次の非表示ではない(=表示されている)行を取得できればよいということですよね?
Do
データ行 = データ行 + 1
Loop Until Not Rows(データ行).Hidden
でいけると思います。
最大行数に制限があるなどの場合は、判断条件にそれを追加してください。
fujillin様
お返事が遅くなり申し訳ありません。
必要に応じて多少のアレンジは致しましたが
ご回答頂いたコードでうまく出来ました。
私が作ったものよりも簡潔で、非常に助かりました。
ありがとうございました。
No.3
- 回答日時:
Private Sub 進む_Click()
Do
ActiveCell.Offset(1, 0).Activate
Loop Until Rows(ActiveCell.Row).Hidden = False
TextBox1 = ActiveCell.Value
End Sub
Private Sub 戻る_Click()
Do
ActiveCell.Offset(-1, 0).Activate
Loop Until Rows(ActiveCell.Row).Hidden = False
TextBox1 = ActiveCell.Value
End Sub
でいかがでしょう
kmetu様
お返事が遅くなり申し訳ありません。
fujillin様の回答と組み合わせてアレンジし、
うまく組むことが出来ました。
しかも「戻る」のコードまで頂き、
とても助かりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
Excelのオートフィルタで非表示...
-
エクセルのオートフィルタで最...
-
エクセルで指定期間内に在職す...
-
時間の条件でオートフィルタを...
-
関数で小数点以下を抽出したい
-
ACCESSでスペースの抽出
-
スプレッドシートのチェックボ...
-
オートフィルタは金額の桁カン...
-
Excelのフィルターで抽出した状...
-
エクセル関数で、数字の入った...
-
写真をイラスト風にしたい
-
オートフィルタで表示されるリ...
-
可視セルを対象としたcountifが...
-
EXCEL VBAで条件付き保護について
-
(EXCEL)オートフィルタで折りた...
-
エクセルで隔週をもとめる
-
【Excel2003】オートフィルタの...
-
エクセルで作った住所録からの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
エクセル関数で、数字の入った...
-
Excel共有ブックのオートフィル...
-
access マクロでのフィルタの...
-
エクセルにて、フィルタをかけ...
-
エクセルで検索窓のようなもの...
-
データの抽出を教えてください
-
なぜShowAllDataだとうまく行か...
-
エクセル、オートフィルタで最...
-
オートフィルタで3つ以上の条...
-
エクセルで、条件に一致した行...
-
Excelで文字を入力と自動的にフ...
-
可視セルを対象としたcountifが...
-
【EXCEL】条件に一致した最新デ...
-
今日の日付のデータをすばやく...
-
ACCESSでスペースの抽出
おすすめ情報