
VBを勉強中の初心者です。
マクロの自動記録でシート1の5~6行目をシート2のセルA3へコピーすることはできました。マクロの内容は
Sheets("Sheet1").Select
Rows("5:6").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A3").Select
ActiveSheet.Paste
となっていました。
上記のシート1の5~6行目を任意の複数行(例えば
A1 に 200306 A2 に 200307 A3 に 200307
A4 に 200307 A5 に 200308 A6 に 200309
A7 に 200309 のデータがあった場合、コピーしたい年月が 200307 の場合は A2 ~ A4 をシート2のA3へ)でコピーしたいのですが、どうすればよいのかどなたか教えて下さい。よろしくお願いします。
No.2
- 回答日時:
補足です。
。。※は行った動作です。
Cells.Select
※シート全体を選択
Selection.AutoFilter
※メニューから[データ]-[フィルタ]-[オートフィルタ]
Selection.AutoFilter Field:=1, Criteria1:="200"
※A列を[200]でフィルタリング
Range("A1").Select
※A1セルを選択
Range(Selection, Selection.End(xlDown)).Select
※A1セルで[Shift]+[Ctrl]+[↓]を押下
Range(Selection, Selection.End(xlToRight)).Select
※A1セルで[Shift]+[Ctrl]+[→]を押下
Selection.SpecialCells(xlCellTypeVisible).Select
※[Alt]+[;]を押下 (可視セルのみ選択)
Selection.Copy
※コピー
Sheets("Sheet2").Select
※Sheet2を選択
Range("A1").Select
※Sheet2のA1セルを選択
ActiveSheet.Paste
※ペースト
Sheets("Sheet1").Select
※Sheet1を選択
Application.CutCopyMode = False
※コピー解除
Selection.AutoFilter
※メニューから[データ]-[フィルタ]-[オートフィルタ]
Range("A1").Select
※A1を選択
No.1
- 回答日時:
Sheet1にこんなデータがあったとします。
A列が200のものだけをSheet2にコピーしたいとします。
※1行目にはタイトルが入っていること
※データ(B列)はすべて埋まっていること
| A | B | C |
--+-----+-----+-----+-
1| Key | Data| |
2| 100 | 10 | |
3| 200 | 20 | |
4| 200 | 5 | |
5| 300 | 25 | |
6| 300 | 10 | |
7| | | |
*****
Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="200"
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
3行目の200の値を変えてあげれば
任意のものがコピーできます。
何をやっているかといいますと
オートフィルタをかけて対象のものだけをコピーする
という動作を記録しただけです。
※普通はループでまわして検索文字と一致するものを
コピーすることでしょう。
※今回はあえてわかりやすい即席なやり方でした。
ループや変数を使用できるのであれば
そちらのやり方を回答しますがいかがでしょうか。
参考になったでしょうか。。。ふあん。
この回答への補足
Neninp:
Nendo = InputBox( _
Title:="年月入力", _
Prompt:="年月(例:200306)を入力して下さい。")
Nentuki = Nendo * 1
Sheets("ドキュメント1").Select
Gyou = 1
Check:
If Gyou = 65500 Then
GoTo Endlabel
End If
If Range("A" & Gyou) <> Nentuki Then
Gyou = Gyou + 1
GoTo Check
End If
Sheets("1").Select
Cells.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("D1") _
, Order2:=xlAscending, Key3:=Range("C1"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal, DataOption3:=xlSortNormal
Gyou = 1
Search:
If Range("A" & Gyou) <> Nentuki Then
Gyou = Gyou + 1
GoTo Search
End If
Dim Myrule, Abc, Bcd
Abc = Gyou
Bcd = Abc + 1
Myrule:
If Range("A" & Abc) = Range("A" & Bcd) Then
Abc = Abc + 1
Bcd = Bcd + 1
GoTo Myrule
Else
Rows("1:" & Abc).Select ←←←←
End If
Selection.Copy
Sheets.Add.Name = 123
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("123").Move after:=Sheets("1")
Tuki = Nentuki Mod 100 & "月"
Sheets("123").Name = Tuki
Endlabel:
Range("A1").Select
End Sub
上記のマクロのなかの Rows("1:" & Abc).Select
"1:" を Gyou にしたいのですが実行するとエラーになります。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
エクセルで隣接していない複数...
-
Excel 行の連続データを列に参...
-
メールソフト「サンダーバード...
-
エクセルの2ページ目の作り方
-
エクセルでの行数・列数を指定...
-
Excelに、ダブルクォーテーショ...
-
Excelでコピーした行の挿入を繰...
-
エクセルで、選択範囲の数値全...
-
「選択範囲を解除してアクティ...
-
エクセルで値だけコピーして背...
-
エクセルで「コピーしたセルの...
-
エクセルのコピペでクリップボ...
-
EXCELのオートフィルの設定を変...
-
エクセルオートフィルで書式を...
-
Excel)軽いデーターのはずなの...
-
エクセル コピーしたデータを1...
-
エクセルVBA/イベント発生でコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで隣接していない複数...
-
エクセルで勝手に「折り返して...
-
Excel 行の連続データを列に参...
-
メールソフト「サンダーバード...
-
エクセルで、選択範囲の数値全...
-
エクセルで値だけコピーして背...
-
エクセル 別シートへのコピー...
-
Excelに、ダブルクォーテーショ...
-
エクセルの2ページ目の作り方
-
エクセルでの行数・列数を指定...
-
EXCELのオートフィルの設定を変...
-
エクセルのコピペでクリップボ...
-
エクセルで「コピーしたセルの...
-
「選択範囲を解除してアクティ...
-
Excel)軽いデーターのはずなの...
-
エクセル・数値が変化したらカ...
-
Excelでコピーした行の挿入を繰...
-
エクセル コピーしたデータを1...
おすすめ情報