エクセルマクロ講座19回-2その2
マクロ講座19回-2 可変の表をコピーしてSheet2に貼り付け
マクロ講座マクロ講座19回-2その2
それでは、マクロの中身を見てみましょう。
Sub 表のコピー()
Range("A1:E11").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
End Sub
ここで変更するのは、
Range("A1:E11").Select・・・・・(a)
の部分です。
Range("A1:E11").Select・・・・・(a)
の部分です。
記録マクロの編集
(a)の部分は、
表の範囲を選択するコードです。
毎回、表の長さが異なるわけですから、
E11は最終行で、変数ですね。

表の範囲を選択するコードです。
毎回、表の長さが異なるわけですから、
E11は最終行で、変数ですね。

そこで、変数を宣言する
マクロ講座13回で、解説した変数の宣言を使います。
最終行を変数に宣言します。
(1)最終行を、毎回取得するために、変数の宣言をしてやります。
宣誓!!
最終行を変数にします
と、宣言してやると、
コンピューターは、プログラムを処理していく中で、プログラム言語以外の
変数をきちんと理解して処理します。
(2)宣言はどうやるかというと、相手はPCですからコードで書くと、
Dim 最終行
最終行を変数に宣言します。
(1)最終行を、毎回取得するために、変数の宣言をしてやります。
宣誓!!
最終行を変数にします
と、宣言してやると、
コンピューターは、プログラムを処理していく中で、プログラム言語以外の
変数をきちんと理解して処理します。
(2)宣言はどうやるかというと、相手はPCですからコードで書くと、
Dim 最終行
これでいいんです。
Dim 最終行
で、最終行を変数としてあつかいます。
Dim 最終行 = 最終行を変数としてあつかいます。
という意味になるわけです。
通常は、
Dim 最終行 As Long
というように、変数の型を指定します。
VBAで整数を扱う型には、LongとInteger があります。
Long型が扱える数字の範囲は、-2,147,483,648 〜 +2,147,483,647 です。
Integer型が扱える数字の範囲は、-32,768 〜 +32,767 です。
どちらを使うかは、扱うものに合わせるのが一番ですが、悩むくらいなら、Longを使っていれば良いでしょう。
それで、変数である最終行の式は、
Dim 最終行
で、最終行を変数としてあつかいます。
Dim 最終行 = 最終行を変数としてあつかいます。
という意味になるわけです。
通常は、
Dim 最終行 As Long
というように、変数の型を指定します。
VBAで整数を扱う型には、LongとInteger があります。
Long型が扱える数字の範囲は、-2,147,483,648 〜 +2,147,483,647 です。
Integer型が扱える数字の範囲は、-32,768 〜 +32,767 です。
どちらを使うかは、扱うものに合わせるのが一番ですが、悩むくらいなら、Longを使っていれば良いでしょう。
それで、変数である最終行の式は、
最終行 = Range("E65536").End(xlUp).Row
これをマクロの記録で作成したコードにあてはめてやります。
これで、毎回表の長さがかわってもその最終行をコピーしてくれます。
このコードは、簡略化できます。
それから、表のあるSheet1を選択していないといけないので、
Sheets("Sheet1").Activate
の1行を加えましょう。
Sub 表のコピー2()
Dim 最終行 As Integer
Sheets("Sheet1").Activate
最終行 = Range("E65536").End(xlUp).Row
Range("A1:E" & 最終行).Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
End Sub
これで、毎回表の長さがかわってもその最終行をコピーしてくれます。
このコードは、簡略化できます。
それから、表のあるSheet1を選択していないといけないので、
Sheets("Sheet1").Activate
の1行を加えましょう。
マクロを実行して確かめてくださいね。
今回はこれまで、That's it.
今回はこれまで、That's it.
スポンサーリンク
スポンサーリンク