まず、「;」(セミコロン)じゃなく「:」(コロン)なので、間違えないようにしてください。
また言わずもがなですが「、」(読点)じゃなく「,」(カンマ)を使います。
致命的に勘違いをしているのは、この部分です(セミコロンはコロンに修正済み)
>Range(Cells(1, 1) & ":" & Cells(10, 1))
この「Cells(1, 1) & ":" & Cells(10, 1)」の書き振りは、cells(1, 1)に記入されている内容と、コロンと、cells(10, 1)に記入されている内容を、文字列結合しているだけです。
実例でトレースしてみます。
cells(1, 1)に「123」と記入してあるとしましょうか。
cells(10, 1)は空っぽだったとしましょうか。
「Cells(1, 1) & ":" & Cells(10, 1)」は単なる文字列結合で、「123:」という文字列を計算するだけだということです。
従ってあなたの命令は
range("123:")
を計算させていることとなり、間違った指定となってエラーになります。
敢えてその書き振りを採用するとすれば、range()の中に意図通り「A1:A10」という文字列を計算させてやらないとなりません。
例:
range(cells(1, 1).address & ":" & cells(10, 1).address)
rangeは次の2通りの使い方をすることができます。
使い方その1:
range("A1").select
range("A1:A2").select
range("A1,A5").select
range("A1,A4,A6").select
range("A1:A10,C1:C10").select
range("B1:D10 A3:E4").select
これらの書き振りは、結果して1つのセルや1つのセル範囲、複数のセル範囲を取得しますが、rangeの使い方としては全く共通です。
結果の如何によらず、この書き振りでは「””で囲われた一つの文字列」をrangeの中にいれて利用します。
使い方その2:
range(range("A1"), range("A10")).select
range("A1", "D1").select
range(cells(1,1), cells(10, 1)).select
range(cells(1, 1), range("C10:D12")).select
これらの書き振りは、「range(セルその1, セルその2)」という構文で2つのセル(セル範囲)を与えることで、結果して「与えられた2つのセル範囲を対角とする1つのセル範囲」を取得します。
「セルその1」や「セルその2」の部分で使う「セルの指定の仕方」は、cellsを使ってもrangeを使っても何を使っても関係ありません。
お礼
ありがとうございました。