Excel VBA質問箱 IV

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

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


10813 / 76734 ←次へ | 前へ→

【71466】Re:【Excel VBA】コピー&ペーストの自動化
回答  UO3  - 12/3/7(水) 0:50 -

引用なし
パスワード
   ▼bofbof さん:

元シートのD列を作業列に使います。
また、転記するシートはシート名が日付になります。(あれば、それを使いますし、なければ作成します)
転記レイアウトは、ご希望のものと少し違いますが、試してみてください。
機能としてはフィルターオプションを使っています。

Sub Sample()
  Dim c As Range
  Dim shnm As String
  Dim sh As Worksheet
  
  Application.ScreenUpdating = False
  
  With Sheets("Sheet1")  '元シート名は実際のものに
    .Columns("D").ClearContents
    .Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("D1"), Unique:=True
    For Each c In .Range("D2", .Range("D" & .Rows.Count).End(xlUp))
      shnm = Format(c.Value, "yyyy""年""mm""月""dd""日""")
      If IsObject(Evaluate("'" & shnm & "'!A1")) Then
        Set sh = Sheets(shnm)
        sh.Cells.ClearContents
      Else
        Sheets.Add
        Set sh = ActiveSheet
        sh.Name = shnm
      End If
      
      sh.Range("A1") = .Range("A1").Value
      sh.Range("A2").Value = c.Value
      sh.Range("B1").Value = .Range("B1").Value
      .Columns("A:B").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=sh.Range("A1:A2"), CopyToRange:=sh.Range("B1"), Unique:=False
    Next
    .Columns("D").ClearContents
  End With
  
  Application.ScreenUpdating = True
  MsgBox "処理が終了しました"
  
End Sub

4 hits

【71465】【Excel VBA】コピー&ペーストの自動化 bofbof 12/3/6(火) 23:39 質問
【71466】Re:【Excel VBA】コピー&ペーストの自動化 UO3 12/3/7(水) 0:50 回答
【71467】Re:【Excel VBA】コピー&ペーストの自動化 UO3 12/3/7(水) 0:52 発言
【71468】Re:【Excel VBA】コピー&ペーストの自動化 Hirofumi 12/3/7(水) 0:58 回答

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