添付図を参照してください。
元データがある表(シート名:統計)へ(シート名:Sheet1)にあるオートフィルタで抽出したデータを統計 シートの最終行を判断して、Sheet1のA列とD列の該当のデータのみをコピーして
シートの最終行から貼り付けをするマクロを作成したいです。
最終行を判断するには、
Range(Selection, Selection.End(xlDown)).Select など記述すべきかと思いますが、
あくまでSheet1の抽出したデータ行は15行までではなくデータにより様々な行数を取得するようにしたいです。Range("A2", Range("A2").End(xlDown)).Select など?
すいませんが、ご教授頂きますようお願いいたします。
No.3ベストアンサー
- 回答日時:
No.1です。
>ちなみにオートフィルタでC列”教科”を算数、E列”ランク”をAを組み込む場合は・・・
コード内に"教科"と"ランク"を組み込んでしまうと汎用性がなくなると思いますので、
インプットボックスで"教科"と"ランク"を入力するようにしてみました。
Sub Sample2()
Dim lastRow As Long, wS As Worksheet, myRng As Range
Dim Kyouka As String, myRnk As String
Set wS = Worksheets("統計")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Set myRng = Range(.Cells(2, "A"), .Cells(lastRow, "E"))
Kyouka = Application.InputBox("フィルタを掛ける教科を入力")
myRnk = Application.InputBox("フィルタを掛けるランクを入力")
With .Range("A1")
.AutoFilter field:=3, Criteria1:=Kyouka
.AutoFilter field:=5, Criteria1:=myRnk
End With
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
myRng.SpecialCells(xlCellTypeVisible).Copy wS.Cells(Rows.Count, "A").End(xlUp).Offset(1)
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
End If
.AutoFilterMode = False
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
素晴らしい、この内容で奇麗に貼り付けれる事を確認いたしました。
ちなみにIf .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then~で
"Sheet1"シートのA行から"統計"シートのA行へ該当のデータをコピーしていますが、仮に"Sheet1"シートのA行から"統計"シートのB行へコピー、"Sheet1"シートのD行から"統計"シートのF行へと指定した行へコピーする事もできるのでしょうか?この場合は、記述がまた変わってくるのでしょうか?(追加になるかもしれませんが申し訳ございません、これで解消できると思います)
No.4
- 回答日時:
No.1・3です。
>仮に"Sheet1"シートのA行から"統計"シートのB行へコピー、"Sheet1"シートのD行から"統計"シートのF行へ・・・
「Sheet1」のA列を「統計Sheet」の最終行1行下のB列に、
「Sheet1」のD列を「統計Sheet」の最終行1行下のF列のにそれぞれコピー&ペーストする!という意味でしょうか?
そうであれば当然コードそのものが変わってきます。
Sub Sample3()
Dim j As Long, lastRow As Long, maxRow As Long, wS As Worksheet
Dim Kyouka As String, myRnk As String
Set wS = Worksheets("統計")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Kyouka = Application.InputBox("フィルタを掛ける教科を入力")
myRnk = Application.InputBox("フィルタを掛けるランクを入力")
With .Range("A1")
.AutoFilter field:=3, Criteria1:=Kyouka
.AutoFilter field:=5, Criteria1:=myRnk
End With
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
maxRow = wS.UsedRange.Rows.Count + 1
Range(.Cells(2, "A"), .Cells(lastRow, "A")).Copy wS.Cells(maxRow, "B")
Range(.Cells(2, "D"), .Cells(lastRow, "D")).Copy wS.Cells(maxRow, "F")
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
End If
.AutoFilterMode = False
End With
End Sub
こんな感じになると思います。
ただ、「統計」Sheetの貼り付ける列を変えてしまうと、項目が異なる列に貼り付けることになるので
データとしては全く意味がないものになるような気がするのですが・・・m(_ _)m
早速のご回答ありがとうございます!その通りです! なるほど、こういうコードにすれば違った列にコピーができるのですね。 ”統計”シートにそもそも”Sheet1"シートと同じじゃないケースはどうするのかこれで解消できました。大変助かり感謝しております。ありがとうございました!
No.2
- 回答日時:
フィルタがかかっていれば、普通のコピーで可視行だけコピーできますよ。
こんな感じです。
Sub sample()
Dim FromRow As Long
Dim ToRow As Long
FromRow = Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
ToRow = Worksheets("統計").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("Sheet1").Range("A2:A" & FromRow).Copy _
Destination:=Worksheets("統計").Range("A" & ToRow)
Sheets("Sheet1").Range("D2:D" & FromRow).Copy _
Destination:=Worksheets("統計").Range("D" & ToRow)
End Sub
なるほど、こちらでも実現可能みたいです。他の方の補足にあるように、オートフィルタでC列”教科”を算数、E列”ランク”をAを組み込む場合は、また違ってくるのでしょうか?
No.1
- 回答日時:
こんばんは!
「統計」Sheetに貼りつけるのは、A列とD列だけで良いのですね?
一例です。標準モジュールにしてください。
Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("統計")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If .FilterMode Then
Range(.Cells(2, "A"), .Cells(lastRow, "A")).SpecialCells(xlCellTypeVisible).Copy _
wS.Cells(Rows.Count, "A").End(xlUp).Offset(1)
Range(.Cells(2, "D"), .Cells(lastRow, "D")).SpecialCells(xlCellTypeVisible).Copy _
wS.Cells(Rows.Count, "D").End(xlUp).Offset(1)
Else
MsgBox "絞り込まれていません"
End If
End With
End Sub
※ とりあえずオートフィルタで絞り込まれている場合のみ
コピー&ペーストするようにしてみました。m(_ _)m
さすがです、これでできそうです。
ちなみにオートフィルタでC列”教科”を算数、E列”ランク”をAを組み込む場合は、どのような記述を追加すればよいのでしょうか? また違ってきますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセルで最下行にデータを追加するVBA 6 2023/05/09 09:30
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) 別のシートの最終行の値を参照するには 5 2022/12/15 13:18
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
オートフィルタで抽出したデータを別シートの最終行に追加させたい。
Excel(エクセル)
-
VBA オートフィルタで抽出したものを連続貼り付け
その他(Microsoft Office)
-
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
-
4
複数指定セルの可視セルのみを別シートに転記するVBAについて
Visual Basic(VBA)
-
5
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
6
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
7
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
8
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
エクセルVBAでフィルタ抽出部分のみのコピー
Excel(エクセル)
-
11
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
12
Excel VBA オートフィルタの結果をコピーして貼り付けたい(空白行も含める)
Visual Basic(VBA)
-
13
EXCELのVBA-フィルタ抽出後のセル選択方法
Visual Basic(VBA)
-
14
エクセルマクロで、他ブックからオートフィルタ抽出
Visual Basic(VBA)
-
15
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
16
エクセル マクロ名にブック名が付いた場合の修正方法
Excel(エクセル)
-
17
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
18
VBA オートフィルター繰り返し
Visual Basic(VBA)
-
19
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
20
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】条件に一致しない行を削...
-
エクセルのVBAで指定した行数の...
-
エクセルで空白行を削除する ...
-
エクセルのデータがない行には...
-
条件に合った行を削除するマク...
-
各個体に対する平均値の自動計...
-
VB.net
-
【VBA】条件に一致しない行を削...
-
EXCEL VBAでA列にある空白行よ...
-
VBAで特定の行と一つ上の行を削...
-
エクセルで階層図を作る方法
-
列から特定の文字列検索→該当以...
-
エクセルで特定の文字が入って...
-
Excel97 指定した行だけマク...
-
Excel 別ブックから該当データ...
-
【マクロ】A列最終行までを、カ...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのデータがない行には...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
マクロで最終行を取得してコピ...
-
数値に見えるものはすべて数値...
-
Excel VBAでオートフィルタで抽...
-
【VBA】条件に一致しない行を削...
-
VB.net
-
EXCEL VBAでA列にある空白行よ...
-
エクセルのVBAで指定した行数の...
-
Excel マクロ 検索結果を別シ...
-
列から特定の文字列検索→該当以...
-
各個体に対する平均値の自動計...
-
【至急】Excel 同一人物の情報...
-
Excel 別ブックから該当データ...
-
マクロにて指定の文字間の文字...
-
Excel VBA オートフィルタの結...
-
エクセルマクロでグループごと...
-
VBAで特定の行と一つ上の行を削...
-
エクセルで階層図を作る方法
おすすめ情報
たびたびすいません、該当のデータをコピーした後、コピーした行まで罫線を引いておく
事もしたいのですができますでしょうか?(B、C、E行も)