• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル シート分離について)

エクセル シート分離について

このQ&Aのポイント
  • エクセルのシート分離について学びたいです。シート1にある表で、一部のデータをシート2に自動的に移動させる方法を知りたいです。
  • 具体的には、A列、B列、C列のデータがある表で、C商事のデータだけを別のシートに移す方法を知りたいです。初心者のため、VBアプリケーションで自動化する方法を教えてください。
  • ハッシュタグ: #エクセル #シート分離 #自動化 #初心者 #VBA

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

フィルタオプションの設定でCriteriaを 取引先 <>C商事 として抽出する。 および 取引先 ="=C商事" として抽出する。 2社以内ならオートフィルタオプションでも可能です。 抽出して、別シートにコピペ。×2 SQLを使って抽出する方法や強引な数式を使う方法もありますが、 自動化はマクロの自動記録で記録するのが手軽でしょう。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

ANo2 merlionXXです。 質問を読み直しましたが、ひょっとして毎日データを書き加え、それからマクロを実行するのでしょうか? 前回回答したのは1回だけ動かすマクロの例でしたので、もしそうなら不適切でした。 何度も使用するならこんな感じかな。 Sub test02()   Dim S(2) As Worksheet, i As Integer, tg As Range      Set S(0) = Sheets("Sheet1")   Set S(1) = Sheets("Sheet2")   Set S(2) = Sheets("Sheet3")      For i = 1 To 2     S(i).Columns("A:C").ClearContents     S(i).Range("A1:C1").Value = S(0).Range("A1:C1").Value   Next      Set tg = S(0).Range("A2")      Do While tg <> ""     If tg.Value = "C商事" Then       S(2).Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = tg.Resize(, 3).Value     Else       S(1).Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = tg.Resize(, 3).Value     End If     Set tg = tg.Offset(1)   Loop    End Sub

aidorumary
質問者

お礼

ありがとうございます。 読み直してみます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

元データのあるのがSheet1 C商事を除くデータを転記する先がSheet2 C商事のデータだけを転記する先がSheet3 だとします。 Sub test()   Dim S(2) As Worksheet, tg As Range      Set S(0) = Sheets("Sheet1")   Set S(1) = Sheets("Sheet2")   Set S(2) = Sheets("Sheet3")      S(1).Range("A1:C1").Value = S(0).Range("A1:C1").Value   S(2).Range("A1:C1").Value = S(0).Range("A1:C1").Value   Set tg = S(0).Range("A2")   Do While tg <> ""     If tg.Value = "C商事" Then       S(2).Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = tg.Resize(, 3).Value     Else       S(1).Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = tg.Resize(, 3).Value     End If     Set tg = tg.Offset(1)   Loop    End Sub