Excel VBA質問箱 IV

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

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


14199 / 76738 ←次へ | 前へ→

【68038】Re:文字を繋げてから、縦列に並び替える
回答  UO3  - 11/1/26(水) 20:44 -

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

こんばんは

要件を誤解していたらご容赦。
途中のフラッグを判定しているところが、ちょっとベタな感じでかっこ悪いのですが。

Option Explicit

Sub Sample()
  Dim mRow As Long
  Dim i As Long, k As Long
  Dim v() As String
  Dim c As Range
  
  Application.ScreenUpdating = False
  
  i = 1
  With Sheets("Sheet1")
    mRow = WorksheetFunction.Max(.Range("A" & .Rows.Count).End(xlUp).Row, _
                   .Range("C" & .Rows.Count).End(xlUp).Row, _
                   .Range("E" & .Rows.Count).End(xlUp).Row)
    
    .Columns("G").ClearContents
    .Columns("L").ClearContents
    
    For Each c In .Range("A1:A" & mRow)
      k = 0
      ReDim v(1 To 3)
      If c.Value = 1 Then
        k = k + 1
        v(k) = "○○○"
      End If
      If c.Offset(0, 2).Value = 1 Then
        k = k + 1
        v(k) = "XXX"
      End If
      If c.Offset(0, 4).Value = 1 Then
        k = k + 1
        v(k) = "△△△"
      End If
      If k > 0 Then
        ReDim Preserve v(1 To k)
        c.Offset(0, 6).Value = Join(v, ",") 'G列
        .Cells(i, "L").Resize(k).Value = WorksheetFunction.Transpose(v)
        i = i + k
      End If
    Next
  End With
  
  Application.ScreenUpdating = True
  
End Sub
0 hits

【68028】文字を繋げてから、縦列に並び替える ケイ 11/1/26(水) 13:55 質問
【68034】Re:文字を繋げてから、縦列に並び替える Jaka 11/1/26(水) 15:20 発言
【68037】Re:文字を繋げてから、縦列に並び替える ケイ 11/1/26(水) 17:50 お礼
【68042】Re:文字を繋げてから、縦列に並び替える Jaka 11/1/27(木) 9:21 発言
【68046】ひょっとして。 Jaka 11/1/27(木) 11:10 発言
【68038】Re:文字を繋げてから、縦列に並び替える UO3 11/1/26(水) 20:44 回答
【68039】Re:文字を繋げてから、縦列に並び替える UO3 11/1/26(水) 21:57 発言
【68044】Re:文字を繋げてから、縦列に並び替える ケイ 11/1/27(木) 10:39 お礼
【68045】Re:文字を繋げてから、縦列に並び替える UO3 11/1/27(木) 11:09 回答
【68047】Re:文字を繋げてから、縦列に並び替える ケイ 11/1/27(木) 11:19 お礼

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