• 締切済み

あるセルに文字が入力されている行だけを別シートにコピーする方法

ある一つのセルに文字が入力されている行だけを別シートに 自動でコピーする方法はありませんでしょうか? 顧客リストをエクセルで管理しているのですが、 「休眠顧客」をそこから自動で抜き出す方法を探しています。 たとえば、ある列を「リリース」とか「アプローチ中止」などの 項目にし、そのセルに●印が入っている行だけを自動で、別シートに 反映させたく思っています。 自動で「休眠顧客リスト」ができたらいいなって思っています。 どなたか、お教えくださいますよう、お願いいたします。

みんなの回答

  • kuma3f
  • ベストアンサー率63% (28/44)
回答No.2

思われていることと違っていましたらすみませんが、参考までに次のコードをマクロに貼り付けて試してみてください。 例は"Sheet1"のC列が●の行を"休眠顧客リスト"シートを作成して抽出します。 コードの(1)には、実際の顧客リストのシート名を記述してください。 コードの(2)には、実際の「リリース」の列番号を記述してください。(C列なら3) メニューバーの「ツール」→「マクロ」→「マクロ」をクリック  ↓ マクロのダイアログが表示されたらマクロ名に自由に名前を入力してください。(例:抽出)  ↓ 名前を入力しましたら、「作成」をクリック  ↓ Microsoft Visual Basicの画面が開きますのでSub 抽出()の下に次のコードをコピーして貼り付けてください。 Dim 行番号 As Long Dim 抽出行番号 As Long Dim 最大行 As Long Dim 顧客リスト As String Dim 列番号 As Long Dim スイッチ As Integer 顧客リスト = "Sheet1" '←顧客リストのシート名をセットしてください。…(1) 列番号 = 3 '←●が入る列を列番号でセットしてください。(C列なら3)…(2) スイッチ = 0 On Error GoTo skip1 Sheets("休眠顧客リスト").Select スイッチ = 1 skip1: If スイッチ = 0 Then '"休眠顧客リスト"シートが無かったら作成する Sheets.Add ActiveWorkbook.ActiveSheet.Name = "休眠顧客リスト" End If Sheets("休眠顧客リスト").Cells.ClearContents Sheets(顧客リスト).Select Sheets(顧客リスト).Range("A65536").End(xlUp).Select 最大行 = ActiveCell.Row 行番号 = 1 抽出行番号 = 1 '項目行を抽出 Sheets(顧客リスト).Select Sheets(顧客リスト).Rows(行番号).Select Selection.Copy Sheets("休眠顧客リスト").Select Sheets("休眠顧客リスト").Rows(抽出行番号).Select ActiveSheet.Paste Application.CutCopyMode = False 抽出行番号 = 抽出行番号 + 1 '●の行を抽出 Do If Sheets(顧客リスト).Cells(行番号, 列番号) = "●" Then Sheets(顧客リスト).Select Sheets(顧客リスト).Rows(行番号).Select Selection.Copy Sheets("休眠顧客リスト").Select Sheets("休眠顧客リスト").Rows(抽出行番号).Select ActiveSheet.Paste Application.CutCopyMode = False 抽出行番号 = 抽出行番号 + 1 End If 行番号 = 行番号 + 1 Loop Until 行番号 > 最大行 Sheets("休眠顧客リスト").Select Sheets("休眠顧客リスト").Range("A1").Select MsgBox "休眠顧客リストを作成しました。" '****コピー貼り付けはここまで **** Microsoft Visual Basicの画面を×で閉じます  ↓ Excel画面のメニューバーの「ツール」→「マクロ」→「マクロ」をクリック  ↓ 先ほど名前を付けたマクロを選択して「実行」をクリック

kimy1975
質問者

お礼

kuma3f 様 ご丁寧にありがとうございます。 やはり、マクロを使わなければいけないのですね? 実は、使った事がないので、どうなるかわかりませんが、やってみます。 結果はまた、ご報告させていただきます。 取り急ぎ、御礼だけになってしまうのですが・・・ ありがとうございました。

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

マクロ(VBA)を使って、For ~ Next、Offsetなどをで転機して別シートを作ることはやってやれないことはないのですが、質問内容程度のことでしたら、オートフィルター機能を使って、●印の入っている行を抽出すれば済むと思うのですが。

関連するQ&A