Function内部でHiddenプロパティが効かない件

次のようなコードを書いていた

Function hidenUnusedColumn() As Integer
  Dim rangeStr As String
  rangeStr = 【非表示にする列の範囲を求める関数を実行】
  Columns(rangeStr).Hidden = True
  hidenUnusedColumn = 0
End Function

SubじゃなくてFunctionにしているのは、特に意図はない。


rangeStrは正しく求められている。けどHiddenプロパティが動いてくれない。
数時間悩んだ。
FunctionじゃなくてSubで定義したらちゃんと動いた。


FunctionとSubって、戻り値を返せるかどうかの違いだけだと思ってたけど違うのかな?
Sub内でしか実行できない手続きって何だろう?
逆にFunctionでしか実行できないものってあるのかな。