Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11999 / 13646 ツリー ←次へ | 前へ→

【12884】セル項目が「A」の行を特定部分だけを別シートに貼り付ける方法 なつ 04/4/18(日) 13:38 質問
【12885】Re:セル項目が「A」の行を特定部分だけを別... かみちゃん 04/4/18(日) 14:18 回答
【12895】Re:セル項目が「A」の行を特定部分だけを別... Jaka 04/4/19(月) 11:39 回答
【12922】Re:セル項目が「A」の行を特定部分だけを別... なつ 04/4/19(月) 19:51 お礼

【12884】セル項目が「A」の行を特定部分だけを別...
質問  なつ  - 04/4/18(日) 13:38 -

引用なし
パスワード
   VBA初心者です。
基本的なことかもしれませんが、わからずに苦戦中です。

ID  名前   更新日   項目1    項目2   
23  さとう   2/3   作成済   未対応
24  たなか   2/4   作成済   対応済
54  よしだ   2/5   作成済   未対応
67 さいとう  1/29   未作成   対応済
:  :    :    :      :     

この表中の項目2が「未対応」のものである行を取り出したいのですが、
その際、IDと名前と更新日だけを別のシートにコピーして貼り付けしたいのです。

この場合、
別のシートに
ID  名前   更新日  詳細項目1  詳細項目2 ・・・
23  さとう   2/3    
54  よしだ   2/5

と、この部分だけを貼り付けたいのですが。。。
わかる方、教えてください。よろしくお願いします。

【12885】Re:セル項目が「A」の行を特定部分だけを...
回答  かみちゃん  - 04/4/18(日) 14:18 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>この表中の項目2が「未対応」のものである行を取り出したいのですが、
>その際、IDと名前と更新日だけを別のシートにコピーして貼り付けしたいのです。

オートフィルタを使って、可視セルだけコピーすればいいのではないでしょうか?
以下のマクロでは、いったん行全体を別シートにコピーして、残したいセル以外を消去しています。

Sub Test()
  '現在のシート名と、抽出結果シート名の変数の宣言
  Dim ActiveSheetName, ResultSheetName As String
  
  '現在のシート名の取得
  ActiveSheetName = ActiveSheet.Name
  '抽出結果シート名の指定
  ResultSheetName = "Sheet2"
  
  '5列目(E列)が「未対応」のものをオートフィルタで表示する。
  Selection.AutoFilter Field:=5, Criteria1:="未対応", Operator:=xlAnd
  '抽出結果シートへコピーする。
  '可視セルのみ
  Selection.SpecialCells(xlCellTypeVisible).Copy
  Sheets(ResultSheetName).Select
  ActiveSheet.Paste
  'A列とB列および見出し行以外は値をクリアする。
  Range("C2:IV65536").ClearContents
  Range("A1").Select
  'オートフィルタの解除
  Sheets(ActiveSheetName).Select
  Range("A1").Select
  Selection.AutoFilter
  Application.CutCopyMode = False
  '抽出結果シートを表示
  Sheets(ResultSheetName).Select
  '抽出結果シートへコピー完了
End Sub

【12895】Re:セル項目が「A」の行を特定部分だけを...
回答  Jaka  - 04/4/19(月) 11:39 -

引用なし
パスワード
   こんにちは。

Dim 最後の行 As Long
最後の行 = Range("A65536").End(xlUp).Row
Range("A1:E" & 最後の行).AutoFilter field:=5, Criteria1:="未対応"
Range("A2:C" & 最後の行).SpecialCells(xlCellTypeVisible).Copy
Sheets("Sheet2").Range("A2").PasteSpecial 'Paste:=xlValues

【12922】Re:セル項目が「A」の行を特定部分だけを...
お礼  なつ  - 04/4/19(月) 19:51 -

引用なし
パスワード
   かみちゃんさん、Jakaさんへ

こんにちは。
教えていただき、ありがとうございました。
できました☆

やはり、発想が大事なのですね。
まだまだがんばります。

11999 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free