質問: Range("r").Column ``` ステップインで確認すると1行目は機能していて、2行目は「オブジェクトが必要です」と表示されます。 rは範囲(Range)なので機能すると思ったのですが・・・ 改善方法、アドバイスいただければありがたいです。 よろしくお願いします。
回答: 下記コードで正しく動きます。 ``` Dim r As Range Dim last As Range Set r = Worksheets("城").UsedRange last = r.Columns(r.Columns.Count) ``` 質問者様のコードがエラーになる原因 1.Set r = Worksheets("城").UsedRange.Select まず、これは.Selectの戻り値がRangeオブジェクトではないためエラーが発生します。 2.last = Range("r").Column まず、Range("r")と()内に"r"を入れていますが、これはアドレスとして不正な文字列なのでエラーになります。 おそらく、変数rのセル範囲を参照したかったのだと思いますが、使い方を勘違いされているようです。 そして、.Columnの戻り値はLong型であり、列番号を返すメソッドであるため、Range型の変数に代入できません。