No.1ベストアンサー
- 回答日時:
こんばんは!
画像の配置だとして・・・
一例です。
Changeイベントにしていますので、シートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long
If Intersect(Target, Range("A1,C1")) Is Nothing Or Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
With Target
If .Value <> "" Then
If .Column = 1 Then
Range("B:B").ClearContents
lastRow = Cells(Rows.Count, "M").End(xlUp).Row
Range("M:M").AutoFilter field:=1, Criteria1:=.Value
If Cells(Rows.Count, "M").End(xlUp).Row > 1 Then
Range(Cells(2, "N"), Cells(lastRow, "N")).SpecialCells(xlCellTypeVisible).Copy .Offset(, 1)
ActiveSheet.AutoFilterMode = False
Range("B:B").Sort key1:=Range("B1"), order1:=xlAscending, Header:=xlNo
Else
.Select
MsgBox "該当データなし"
End If
Else
Range("D:D").ClearContents
lastRow = Cells(Rows.Count, "N").End(xlUp).Row
Range("N:N").AutoFilter field:=1, Criteria1:=.Value
If Cells(Rows.Count, "N").End(xlUp).Row > 1 Then
Range(Cells(2, "O"), Cells(lastRow, "O")).SpecialCells(xlCellTypeVisible).Copy .Offset(, 1)
ActiveSheet.AutoFilterMode = False
Range("D:D").Sort key1:=Range("D1"), order1:=xlAscending, Header:=xlNo
Else
.Select
MsgBox "該当データなし"
End If
End If
End If
End With
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
こんばんは。
比較的、面白いものができましたので、紹介します。
配置をちょっとずらせまして、添付画像のようにしてみますと、もう、Excelの既存の機能をそのまま使えます。それに、ちょっとマクロを付けただけです。
なお、元のデータの範囲は、名前の定義で「データ」と付けました。
ボタンは、フォームコントロールです。
長野01, 02 の場合は、*(アスタリスク)を使い、「長野*」とします。
'標準モジュール
Sub DataOut1()
'ボタン1
If Range("A2").Value = "" Then Exit Sub
Range("データ").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1", Cells(20, "A").End(xlUp)), _
CopyToRange:=Range("B1"), Unique:=False
End Sub
Sub DataOut2()
'ボタン2
If Range("C2").Value = "" Then Exit Sub
Range("データ").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("C1", Cells(20, "C").End(xlUp)), _
CopyToRange:=Range("D1"), Unique:=False
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセル シート内のボックスを縦並びから横並びに 7 2023/04/05 04:28
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) 関数を教えてください。 2 2023/08/01 10:59
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LEFT関数とIF関数の組み合わせ...
-
エクセルで離れた列を選択して...
-
エクセルで住所を県と市・郡と...
-
VBAで結合セルを転記する法を教...
-
「段」と「行」の違いがよくわ...
-
VLOOKUPの列番号の最大は?
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
VBAで別ブックの列を検索し、該...
-
えABのある列って
-
エクセルマクロPrivate Subを複...
-
Excel文字列一括変換
-
VBA 選択範囲とUnionの使い方に...
-
エクセルでセル12個間隔で合...
-
エクセルの列末のデータだけ表...
-
オートフィルターの複数抽出と...
-
データシートビューのタイトル...
-
エクセルのシートの大きさを変える
-
エクセルVBAでデータ最終行取得...
-
最終行に合計(最終行が列によ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
エクセルマクロの組み方
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
VBA
-
Excel文字列一括変換
-
エクセル 重複 隣の列 一番...
-
列方向、行方向の定義
-
Alt+Shift+↑を一括で行うには、...
-
VBAで結合セルを転記する法を教...
おすすめ情報