追記です。
想定していることを実現するには、
Intersect([A1:C5], Columns(2))とすることになるでしょう。
Debug.Print Intersect([A1:C5], Columns(2)).Address ' $B$1:$B$5
Debug.Print Intersect([A1:C5], Columns(2)).Count ' 5
また、
Dim m As Variant
Set m = [A1:C5].Columns
Debug.Print m.Count ' 3
Debug.Print m(2).Count ' 1
となりますが、
RangeオブジェクトのColumnsプロパティのヘルプで意味を確認するとよいでしょう。
[A1:C5].Columnsは、そのセル範囲の列たちを表し、
[A1:C5].Columns(2)は、その2番目の列という意味になりますね。
(ヘルプは機械翻訳なので、日本語がおかしいところがあります。
右上にあるボタンを押して英語を読んだほうが正確です。)
(なお、Dim m As Variantとしましたが、RangeでOKです。
Rangeはおかしいのではないか、という主張もありえますが。)