• ベストアンサー

エクセルVBAでRangeの表現の仕方

よろしくお願いします。 c が変数のとき Range("A"&C&":B30) この表現を利用するとエラーになります。 どうすれまよろしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.5

もっと基本的なところからおさらいするというか、それ以前に落ち着いてコードを書きましょう 例えば半角スペースを空けるというのもそうですが、補足にあるのも × Sheets("Sheet5) ○ Sheets("Sheet5") こうなります。単純ミスについてはその箇所がちゃんとエラーとして表示されているのですから、よく見直せば気付けるはずです。 日本語の文章なら、一文字抜けたり句点の位置がずれたりしても大意はつかめるし特に問題はないのですが、プログラム言語の場合は、一文字でも間違えたらその時点で動かないのです。

catshoes01
質問者

お礼

ありがとうございます! 下記でOKでした。 Sheets("Sheet5").Range("F" & "C2" & ":H603").Copy Destination:=Worksheets("Sheet2").Range("A6:G") 上下行は一行です。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

#1などでご指摘の不都合を取り去り Sub test02() c = 8 Range("A" & c & ":B4").Select End Sub を実行するとエラーにならずに、範囲指定しましたが。 Sub test03() c = "B" Range(c & "2:B4").Select End Sub Sub test04() c = "B2:c8" Range(c).Select End Sub 番地だから?数だから?特別?不勉強で良くわかりません。 ーー 私はRange(Cells(・,・),Cells(・,・))を使うことが多い。 ーー エクセルVBAで、他の型のケースで、変数で置き換え(間接的表現)ができないケースがありますね。 今どれだか思い出せないが。

catshoes01
質問者

お礼

ありがとうございます。 ここで、当方も こちらを利用しようと思います。 Range(Cells(・,・),Cells(・,・)) 科学技術計算系なので。 ここでのC2値 はアドレスです。セルの位置が条件によって 可変になります

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。Wendy02です。 >Range("F"& C2 &":H603") C2 というのは変数ではないですね。 セルだと思います。そうしたら、セルに、数字が代入されているハズですから、一旦、数値を取ってあげないといけません。 例   Range("C2").Value >Range("A6:G") これは、完結していませんが、Copyメソッドでは、左上端にセルを合わせることによって、コピーした大きさに、貼り付けられます。しかし、そうでない場合は、また、補足で書いてください。 サンプル: Dim i As Long With Sheets("Sheet5") If IsNumeric(.Range("C2").Value) Then   i = .Range("C2").Value  .Range("F" & i & ":H603").Copy Worksheets("Sheet2").Range("A6") End If End With

catshoes01
質問者

補足

ありがとうございます。 C2は 変数です。アドレスが可変になっていますので。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 > Range("A"&C&":B30) まず、「&(アンパサンド)」がくっつきすぎています。半角スペースを開けてください。「&」は別の意味になってしまいます。「"」が抜けています。赤く表示されていますから、掲示板に聞く前に試行錯誤してください。 回答例 Dim c As Long c = 2 Range("A" & c & ":B30").Select '------------------- 'これも同じだけど、少し、扱いが面倒です。 'しかし、場合によっては、こちらが良い時もあります。全て数字だからです。 Range(Cells(c, 1), Cells(30, 2)).Select なお、変数名 c は、一般的には、セル(Cell)になります。 インクリメンタルな変数は、i,j,k などが主に使われます。

catshoes01
質問者

お礼

ありがとうございます。 下記コードでエラーです。 Sheets("Sheet5).Range("F"& C2 &":H603").Copy _ Destination:=Worksheets("Sheet2").Range("A6:G") Fの文字がハイライトします。 >Range(Cells(c, 1), Cells(30, 2)).Select こちらの方がまぎれないようでよいですね。考慮してみます。

回答No.2

&C&の部分のCの後にスペースが必要なのではないでしょうか? &C &ならエラーにはなりません。

catshoes01
質問者

お礼

ありがとうございます。 下記でエラーになります。 Sheets("Sheet5).Range("F"&C2 &":H603").Copy _ Destination:=Worksheets("Sheet2").Range("A6:G") C2 が変数です。 Fの文字がエラーのとき塗りつぶされた状態になります。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

質問の内容がわかりません。 もっと解りやすく 説明してください。

catshoes01
質問者

お礼

判りにくい表現ですみません。 当然と思った書式でエラーがでてしまうのです。

関連するQ&A