質問: thisS.Range(Rows.Count, 5).Row
回答: 引数の指定が間違っている、やりたいことを推測すると使用するプロパティが違うのが原因です。 エラーの原因 ====== 公式に書いてあることそのまま、という感じではありますが......。 > > Range プロパティ (Excel) | Microsoft Docs > > > Worksheet オブジェクトの Range プロパティは以下の引数の組み合わせしか受け取りません。 * 引数が1個のときは、A1 形式のセルのアドレスの文字列(`"A1"`など)を1個 (`Range("A1")`, `Range("5:5")`など) * 引数が2個のときは、A1 形式のセルのアドレスの文字列、または任意の`Range`オブジェクトのいずれかを2個(混ぜて指定してもOK) (`Range("A1", "C3")`, `Range("A1", Cells.Item(3, 3))`, `Range(Cells.Item(1), "C3")`, `Range(Cells.Item(1), Cells.Item(3, 3))`など) そして、質問の`~.Range(5, Columns.Count)`の記述では、両方が整数となっています。 整数は文字列に暗黙的に変換できますが、「A1 形式のセルのアドレスの文字列」にはならないため、上記の組み合わせに当てはまりません。 結果として引数が間違っていることになり、Range プロパティが失敗します。 やりたかったであろう事(推測) =============== やりたかったことは「行、列を番号で指定してセルを取得」だと思われます。 その場合は、Worksheet 全体のセルを示す`Cells`プロパティから`Item`プロパティで行・列を指定します。 ``` ワークシート.Cells.Item(行番号, 列番号) ``` Range の既定のメンバーに引数を指定すると、`Item`プロパティと同等の動作をするので、以下のように記述しても良いです。 ``` ワークシート.Cells(行番号, 列番号) ``` 上記を踏まえて該当箇所を修正・質問の記述に合わせて省略されているものを補完すると以下のようになります。 ``` sumColumn = thisS.Cells.Item(5, ws.Columns.Count).End(xlToLeft).Column sumRow = thisS.Cells.Item(ws.Rows.Count, 5).Row ``` ###### 注意 ttyp03 さんの指摘とも被りますが、上記のコードでは`thisS.Cells.Item(5, ws.Columns.Count)`と、`thisS`のセルを参照するのに、列の指定は`ws`となっています。 **質問の記述をそのまま再現**すると上記のようになりますが、本来`thisS`と`ws`はどちらかに統一されているべきです。 そのあたりはどちらが正解なのかは、回答者側からは読み取れないため、自身で確認して修正してください。