• ベストアンサー

Excelマクロ:変数を使って範囲を指定してコピーするには?

マクロ勉強中の初心者です。(OS:WindowsXP Excel2002) データの範囲を指定してコピーしたいと思っています。 cellsを使って、【変数を用いた】 記述の仕方を、教えて下さい。 変数を用いない場合は、以下のようなマクロで正常に動作しました。 【変数を用いない場合】   Sheets("Sheet2").Select Range("F3:K3").Select Selection.Copy Sheets("Sheet1").Select Range("C3").Select ActiveSheet.Paste

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

  • ベストアンサー
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

こんにちは。 変数を用いる場合は、Cellsを用いると簡単だと思います。 基本的な書式は  Cells(x,y).Select のような形になります。 xは行番号をあらわし、yは列の番号(A列なら1)です。 また、変数の定義は、xもyも、通常Long型として定義します。 また、複数のセル範囲を選択する場合は、 Rangeと併用し、最初のセルと最後のセルを指定します。  Range(Cells(x1, y1), Cells(x2, y2)).Select 行全体を選択するには  Rows(x).Select 列全体を選択するには  Columns(y).Select のように指定します。

その他の回答 (2)

noname#11856
noname#11856
回答No.3

回答自体は既に出ているので、Tipsというか余談です。(笑) 多分、マクロの記録をしたら質問文のような感じで出てくると思いますが Sheets("Sheet2").Range("F3:K3").Copy Sheets("Sheet1").Range("C3").PasteSpecial と、省略して書けますよ。 ロジックが長くなってきて見難い(醜い)と感じたら、省略していけばいいかな、と思います。 ほんとに余談ですので、こうした方がいいと言ってるわけじゃなく こういう風にもできますよー、ってだけです。(^-^;

foodscnt
質問者

お礼

有難うございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 変数を、row1、col1、row2、col2とすると、 Worksheets("Sheet2").Select Range(Cells(row1, col1), Cells(row2, col2)).Copy のようになります。 1つのセルの場合は、単に、 Cells(row1, col1) でいいです。

foodscnt
質問者

お礼

有難うございました。

関連するQ&A