Excel VBA質問箱 IV

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

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


3852 / 76735 ←次へ | 前へ→

【78512】Re:「・」か改行などで区切られたセルを縦の行に分けたい
発言  β  - 16/10/24(月) 16:58 -

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

★印、実際のシート名に変更願います。

Sub Sample()
  Dim dic As Object
  Dim c As Range
  Dim w1 As Variant
  Dim w2 As Variant
  Dim d1 As Variant
  Dim d2 As Variant
  
  Set dic = CreateObject("Scripting.Dictionary")
  
  With Sheets("Sheet1")  '★入力シート
    For Each c In .Range("A2", .Range("A" & Rows.Count).End(xlUp))
      w1 = Split(c.Offset(, 1).Value, "・")
      w2 = Split(c.Offset(, 2).Value, "・")
      If UBound(w1) >= 0 Or UBound(w2) >= 0 Then 'どちらかあれば
        If UBound(w1) < 0 Then w1 = Array(Empty)
        If UBound(w2) < 0 Then w2 = Array(Empty)
        For Each d1 In w1
          For Each d2 In w2
            dic(dic.Count) = Array(c.Value, d1, d2)
          Next
        Next
      End If
    Next
  End With
  
  With Sheets("Sheet2")  '★別シート
    .UsedRange.Offset(1).ClearContents 'タイトル行以外クリア
    .Range("A2").Resize(dic.Count, 3).Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(dic.items))
    On Error Resume Next
    .Range("A2", .Range("A" & Rows.Count).End(xlUp)).Offset(, 1).SpecialCells(xlCellTypeBlanks).Delete xlToLeft
    On Error GoTo 0
    .Select
  End With
  
End Sub

13 hits

【78507】「・」か改行などで区切られたセルを縦の行に分けたい yk 16/10/24(月) 0:30 質問[未読]
【78508】Re:「・」か改行などで区切られたセルを縦... β 16/10/24(月) 9:18 発言[未読]
【78509】Re:「・」か改行などで区切られたセルを縦... yk 16/10/24(月) 10:32 発言[未読]
【78510】Re:「・」か改行などで区切られたセルを縦... β 16/10/24(月) 13:03 発言[未読]
【78511】Re:「・」か改行などで区切られたセルを縦... yk 16/10/24(月) 16:02 発言[未読]
【78512】Re:「・」か改行などで区切られたセルを縦... β 16/10/24(月) 16:58 発言[未読]
【78513】Re:「・」か改行などで区切られたセルを縦... yk 16/10/24(月) 18:23 お礼[未読]

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