範囲に基づいてセルを選択して連結するための大まかな関数を作成しました。
Function GetSkills(CellRef As String, CellRefEnd As String, Delimiter As String)
Dim CellStart As Range
Dim CellEnd As Range
Dim LoopVar As Long
Dim StartRow As Long
Dim EndRow As Long
Dim Concat As String
Dim Col As Long
Set CellStart = Worksheets(1).Cells.Range("B" & CellRef)
Set CellEnd = Worksheets(1).Cells.Range("B" & CellRefEnd)
Col = CellStart.Column
StartRow = CellStart.Row
EndRow = CellEnd.Row
With Range(CellStart, CellEnd)
.Merge
.WrapText = True
End With
Concat = ""
For LoopVar = StartRow To EndRow
Concat = Concat & Cells(LoopVar, Col).Value
If LoopVar <> EndRow Then Concat = Concat & Delimiter & " "
Next LoopVar
GetSkills = Concat
End Function
その中でセルをマージしようとしています。関数を実行すると、次のようなプロンプトが表示されます。
選択範囲には複数のデータ値が含まれています。1つのセルにマージすると、左上のほとんどのデータのみが保持されます
[OK]をクリックすると、Excelがクラッシュして再起動し、ダイアログが再度表示されます。VBAを使用してセルのブロックをマージする別の方法はありますか?