1) Вариант 1: Можно использовать функцию "Value" объекта "Range" для получения значений столбца в виде двумерного массива, а затем использовать метод "Transpose" для преобразования его в одномерный массив. Например:
```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
myArray = Application.WorksheetFunction.Transpose(rng.Value)
```
Вариант 2: Можно использовать цикл "For Each" для перебора значений в столбце и добавления их в одномерный массив. Например:
```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
ReDim myArray(rng.Rows.Count)
Dim i As Integer
i = 1
For Each cell In rng
myArray(i) = cell.Value
i = i + 1
Next cell
```
2) Можно использовать метод "Value" объекта "Range" для присвоения значений столбца непосредственно в одномерный массив. Например:
```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
myArray = rng.Value
```
Обратите внимание, что в этом случае массив будет иметь размерность 2, поскольку он будет храниться как двумерный массив, где одна из размерностей равна 1.