MW211 EXIT

devlog
ExcelVBA/Excel関数でPHPのimplode()代替
2018年08月28日
┌──────────────────────────────────────┐
│IMPLODE = Join(配列, 区切文字)                                              │
└──────────────────────────────────────┘
ExcelVBAにおけるPHPのimplode()と同等の関数は「Join()」なのだが
Excel関数には同等の関数が見当たらない。

ということで、VBA側の関数として実装してみる。
┌──────────────────────────────────────┐
│Public Function IMPLODE(ByVal 範囲 As Range, ByVal 区切文字 As String)      │
│    Dim 配列 As Variant, セル As Variant                                    │
│    配列 = Array()                                                          │
│    For Each セル In 範囲                                                   │
│        If セル.Value <> "" Then                                            │
│            ReDim Preserve 配列(UBound(配列) + 1)                           │
│            配列(UBound(配列)) = セル.Value                                 │
│        End If                                                              │
│    Next セル                                                               │
│    IMPLODE = Join(配列, 区切文字)                                          │
│End Function                                                                │
└──────────────────────────────────────┘
使用方法としては以下のようになる。
┌──────────────────────────────────────┐
│=IMPLODE(A1:B3,",")                                                         │
└──────────────────────────────────────┘
セル範囲を左上から右へそして下段へという範囲で空欄以外が抽出される。
分類:ExcelVBA