Here is another macro which is more flexible then the first one.
Public Sub Copy_Multiple_Columns()
'
'This macro copies data from multiple columns into one column
'
Dim R_ng As Range, I As Integer, J As Integer, K As Integer, Rng_1 As Range
Set R_ng = Application.InputBox("Select range of cells to copy to one column", Type:=8)
'Selection can be a single range even if some columnshave more data then others as long as there
'is no empty column in your range
'It could also be a multi range selection made with the CTRL key.
'
Set Rng_1 = Application.InputBox("Select column where to put all data", Type:=8)
'Select any cell in the column where you want the data to be copied to.
'Data will be copied to first row and down.
'Make sure this column is empty
'
Application.ScreenUpdating = False
'
K = 0 'Flag for the first data paste
For I = 1 To R_ng.Areas.Count
  If R_ng.Areas.Item(I).Columns.Count > 1 Then
    For J = 1 To R_ng.Areas.Item(I).Columns.Count
      If R_ng.Areas.Item(I).Cells(1, J) <> "" And R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J) <> "" Then
        Range(R_ng.Areas.Item(I).Cells(1, J), R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J)).Copy
      ElseIf R_ng.Areas.Item(I).Cells(1, J) = "" And R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J) <> "" Then
        Range(R_ng.Areas.Item(I).Cells(1, J).End(xlDown), R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J)).Copy
      ElseIf R_ng.Areas.Item(I).Cells(1, J) = "" And R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J) = "" Then
        Range(R_ng.Areas.Item(I).Cells(1, J).End(xlDown), R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J).End(xlUp)).Copy
      ElseIf R_ng.Areas.Item(I).Cells(1, J) <> "" And R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J) = "" Then
        Range(R_ng.Areas.Item(I).Cells(1, J), R_ng.Areas.Item(I).Cells(R_ng.Areas.Item(I).Rows.Count, J).End(xlUp)).Copy
      End If
      Cells(Rows.Count, Rng_1.Column).End(xlUp).Offset(K, 0).PasteSpecial
      K = 1
      Application.CutCopyMode = False
    Next
  Else
    R_ng.Areas.Item(I).Copy
    Cells(Rows.Count, Rng_1.Column).End(xlUp).Offset(K, 0).PasteSpecial
    K = 1
  End If
Next
R_ng.ClearContents
'
Rng_1.Select
Application.ScreenUpdating = True
'
End Sub