- ベストアンサー
Excelマクロ:変数を使って範囲を指定してコピーするには?
マクロ勉強中の初心者です。(OS:WindowsXP Excel2002) データの範囲を指定してコピーしたいと思っています。 cellsを使って、【変数を用いた】 記述の仕方を、教えて下さい。 変数を用いない場合は、以下のようなマクロで正常に動作しました。 【変数を用いない場合】 Sheets("Sheet2").Select Range("F3:K3").Select Selection.Copy Sheets("Sheet1").Select Range("C3").Select ActiveSheet.Paste
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 変数を用いる場合は、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)
回答自体は既に出ているので、Tipsというか余談です。(笑) 多分、マクロの記録をしたら質問文のような感じで出てくると思いますが Sheets("Sheet2").Range("F3:K3").Copy Sheets("Sheet1").Range("C3").PasteSpecial と、省略して書けますよ。 ロジックが長くなってきて見難い(醜い)と感じたら、省略していけばいいかな、と思います。 ほんとに余談ですので、こうした方がいいと言ってるわけじゃなく こういう風にもできますよー、ってだけです。(^-^;
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 変数を、row1、col1、row2、col2とすると、 Worksheets("Sheet2").Select Range(Cells(row1, col1), Cells(row2, col2)).Copy のようになります。 1つのセルの場合は、単に、 Cells(row1, col1) でいいです。
お礼
有難うございました。
お礼
有難うございました。