No.5ベストアンサー
- 回答日時:
No3です。
以下のようなマクロを作成します。(標準モジュールへ作成)
---------------------------------------------
Option Explicit
'sheet1の情報をsheet2(解約),sheet3(入会)へ振り分けてコピーする
Public Sub Macro1()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim maxrow As Long 'sheet1の最大行数
Dim row As Long '処理中の行
Dim row2 As Long 'Sheet2へコピーする行
Dim row3 As Long 'Sheet3へコピーする行
Dim count As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
Set sh3 = Worksheets("Sheet3")
'最終行を取得
maxrow = sh1.Cells((Rows.count), 1).End(xlUp).row
If maxrow < 2 Then
MsgBox ("行数不足")
Exit Sub
End If
'見出しをコピー
sh1.Rows(1).Copy
sh2.Rows(1).PasteSpecial
sh3.Rows(1).PasteSpecial
row2 = 2
row3 = 2
count = 0
For row = 2 To maxrow
With sh1
'抽出条件をチェック
If .Cells(row, 4).Value = 1 Then
'解約ならsheet2へコピー
sh1.Rows(row).Copy
sh2.Rows(row2).PasteSpecial
row2 = row2 + 1
count = count + 1
Else
If .Cells(row, 4).Value = 2 Then
'入会ならsheet3へコピー
sh1.Rows(row).Copy
sh3.Rows(row3).PasteSpecial
row3 = row3 + 1
count = count + 1
Else
MsgBox (row & "行がデータ不正の為コピースキップしました")
End If
End If
End With
Next
Application.CutCopyMode = False
MsgBox (count & "件コピーしました")
End Sub
---------------------------------------------------------
会員名簿をsheet1
解約をsheet2
入会をsheet3
としています。このシート名を変えたい場合は、適宜、変更してください。
上記のマクロを実行すると、解約と入会とに振り分けられ、sheet2,sheet3へコピーされます。
(sheet2,sheet3は上書きされます)
No.4
- 回答日時:
別シートに分ける必要ありません。
別シートに分けてしまうと、今後解約・入会がでるたびに複数のシートを更新する必要があり、非効率です。
フィルタ機能を使えば1枚のリスト(シート)で管理できます。
◆やり方
1. 会員番号等が記入してある行を選択
2. メニューの データ→フィルタ をクリック
3. 解約・入会が記入してあるセルの▼マークをクリック
4. 表示したいものに✔をいれる
どうしても分ける必要があるなら、フィルタを掛けた状態でコピーして、別シートに貼りつければよいです。
No.3
- 回答日時:
マクロを作ればできますが、その前提として、行、列の情報がどのようになっているか教えてください。
質問1:1行目は見出しですか? それともいきなりデータですか?
質問2:解約は1.入会は2とのことですが、それは、D列に1又は2が格納されていると理解して良いですか。(必ず1,2の何れかであり、1,2以外の数字が格納されていることはあり得ない)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルで割り振りをする方法 7 2022/08/02 14:02
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Visual Basic(VBA) 条件に一致した場合の処理 2 2022/10/18 06:30
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
Excel 関数を使ってデータと一...
-
【VBA】コピー&複数個所のペー...
-
【Excel】数式をそのまま他のシ...
-
エクセルの1シートの内容を複...
-
シートが保護されていないのに...
-
EXCELで別のブックから式をコピ...
-
エクセルでシートを「移動また...
-
ExcelVBAで、ユーザーフォーム...
-
EXCEL VBA シートの名前を指定...
-
【Excel VBA】シートコピー時、...
-
連続しないセルへの貼り付け方法
-
VBAにて複数フォルダのエクセル...
-
Excel シートに別のExcelシート...
-
Excel 数式の保護をしたセルを...
-
【エクセル】プルダウン設定の...
-
【Excel】シート全体から一部を...
-
エクセルでシート1に会員名簿を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
EXCELで別のブックから式をコピ...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excelの行をコピーして貼り付け...
-
【エクセル】プルダウン設定の...
-
エクセルのワークシートをUSBメ...
-
Excel シートのコピーの際、ペ...
-
エクセルVBA 1行飛ばしで転記す...
-
エクセルの1シートの内容を複...
-
【Excel VBA】シートコピー時、...
-
エクセルシートを別のエクセル...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルでシートを「移動また...
-
Excel シートに別のExcelシート...
-
Excel 数式の保護をしたセルを...
-
EXCEL2007でシートをコピーする...
-
シートが保護されていないのに...
おすすめ情報
tatsu99さん、ありがとうございます。
1行目には、見出しがあります。
D列には、1か2が必ず入っています。
今は、フィルターをかけて1か2を選択出来るようにしています。
それを1の方が2になった時、自動的に2の解約者のシートに行くようにしたいのです。
解約者は、又、再入会する可能性があるので
別シートに寄せたいのです。
宜しくお願いします。