- ベストアンサー
エクセルVBAでRangeの表現の仕方
よろしくお願いします。 c が変数のとき Range("A"&C&":B30) この表現を利用するとエラーになります。 どうすれまよろしいのでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
もっと基本的なところからおさらいするというか、それ以前に落ち着いてコードを書きましょう 例えば半角スペースを空けるというのもそうですが、補足にあるのも × Sheets("Sheet5) ○ Sheets("Sheet5") こうなります。単純ミスについてはその箇所がちゃんとエラーとして表示されているのですから、よく見直せば気付けるはずです。 日本語の文章なら、一文字抜けたり句点の位置がずれたりしても大意はつかめるし特に問題はないのですが、プログラム言語の場合は、一文字でも間違えたらその時点で動かないのです。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
#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で、他の型のケースで、変数で置き換え(間接的表現)ができないケースがありますね。 今どれだか思い出せないが。
お礼
ありがとうございます。 ここで、当方も こちらを利用しようと思います。 Range(Cells(・,・),Cells(・,・)) 科学技術計算系なので。 ここでのC2値 はアドレスです。セルの位置が条件によって 可変になります
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。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
補足
ありがとうございます。 C2は 変数です。アドレスが可変になっていますので。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 > 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 などが主に使われます。
お礼
ありがとうございます。 下記コードでエラーです。 Sheets("Sheet5).Range("F"& C2 &":H603").Copy _ Destination:=Worksheets("Sheet2").Range("A6:G") Fの文字がハイライトします。 >Range(Cells(c, 1), Cells(30, 2)).Select こちらの方がまぎれないようでよいですね。考慮してみます。
- MickeyBear
- ベストアンサー率36% (27/75)
&C&の部分のCの後にスペースが必要なのではないでしょうか? &C &ならエラーにはなりません。
お礼
ありがとうございます。 下記でエラーになります。 Sheets("Sheet5).Range("F"&C2 &":H603").Copy _ Destination:=Worksheets("Sheet2").Range("A6:G") C2 が変数です。 Fの文字がエラーのとき塗りつぶされた状態になります。
- Nayuta_X
- ベストアンサー率46% (240/511)
質問の内容がわかりません。 もっと解りやすく 説明してください。
お礼
判りにくい表現ですみません。 当然と思った書式でエラーがでてしまうのです。
お礼
ありがとうございます! 下記でOKでした。 Sheets("Sheet5").Range("F" & "C2" & ":H603").Copy Destination:=Worksheets("Sheet2").Range("A6:G") 上下行は一行です。