VBAをはじめたばかりの初心者です。
業務でマクロ処理をするよう言われましたが、苦戦しております。
なんとか今週中にしあげなければならない状況で、ご存知の方がいらっしゃれば助けていただければと思います。
1行目・・・項目が記載されています。
2行目以降・・・A列~G列・I~K列に住所などの情報があり、H列とL列にはとある計算式をいれています。
件数は約500件(500行)程度で、毎回変更します。
H2とL2に計算式を入れて、
セルH2の値をH3にコピー、セルL2の値をL3にコピーするマクロが自動記録で次のようにできました。
Range("H2").Select
Selection.Copy
Range("H3").Select
ActiveSheet.Paste
Range("L2").Select
Application.CutCopyMode = False
Selection.Copy
Range("L3").Select
ActiveSheet.Paste
これを、H4・L4、H5・L5・・・・と繰り返してコピーをしていき、データがなくなったらループを修了するという記述をしたいのですが、わかりません。
いろいろネットで探してみたのですが、データ数を指定するやり方(?)ではなく、「Do~Loop」を使った方法でやりたいと思っております。
どなたか教えていただけませんでしょうか。
宜しくお願いいたします。
No.4ベストアンサー
- 回答日時:
方法はいくつかあると思いますが。
。。'-------------------------------------
Sub Test1()
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("H2").AutoFill Range("H2:H" & Lastrow)
Range("L2").AutoFill Range("L2:L" & Lastrow)
End Sub
'--------------------------------------
Sub Test2()
Dim Lastrow As Long
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("H2").Copy Range("H3:H" & Lastrow)
Range("L2").Copy Range("L3:L" & Lastrow)
End Sub
'-----------------------------------
Sub Test3()
Dim R As Long
For R = 3 To Cells(Rows.Count, "A").End(xlUp).Row
Range("H2").Copy Cells(R, "H")
Range("L2").Copy Cells(R, "L")
Next R
End Sub
'---------------------------------
A列のデータで最終行を判断してます。
こんばんわ。
いろんな記述があるのですね。
直感で(?) Test3を試したところ、無事うまくいきました!
実は、HとLだけでなくコピーしたい列が複数ありましたので、
「Range("H2").Copy Cells(R, "H")」のように、
1行でシンプルに記述する方法は、とってもうれしいです!
本当にありがとうございます。
No.3
- 回答日時:
もう一つ、以下の操作も「マクロの記録」をしてみてください。
H2に数式を入れ、その後、記録スタートするとします。
1.H2~H10を選択(マウスを使っても、キーボードのShift+↓を使ってもOKです)
2.Ctrl+d
後はマクロの記録には出てきませんが、RangeやCellsを上手く使えばできます。
実際のデータを見ていないので確かなことは言えませんが、Do~Loopや For~to~Nextなどは使わなくてもできると思います。
こんばんわ。
たびたびありがとうございます。
Ctrl+dは、知りませんでした!
これは大変使えそうです。
Do~Loopや For~to~Nextを使わずにするやり方も習得したいと思います。
ありがとうございます。
No.1
- 回答日時:
こんばんは
以下の操作を「マクロの記録」してみてください。
1.A列の一番下のセルを選択
2.Ctrlキーを押しながら↑キーを押す。
マクロの記録ですともう少し長い記述となりますが、自分でVBAを書くと以下のようになります。
Cells(Rows.Count, "A").End (xlUp)
[A65536]を使わないのはバージョンが2003以前と2007のどちらでも対応できるようにするためです(もっとも、いずれの場合にも最後の行までデータを入れることはないという前提です)。
最後の行を知りたい場合には、
Cells(Rows.Count, "A").End(xlUp).Row
とします。
こんばんは。
早速のご回答ありがとうございます。
「End (xlUp)」を初めて知りました。
大変便利で、応用がききそうです。バージョンによっても記述が違うのですね・・・。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】甲子園での思い出の残し方
「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
VBA コピーして次の値まで貼り付けを繰り返す
Visual Basic(VBA)
-
繰り返し1行~28行までを順順にコピーする方法
Visual Basic(VBA)
-
-
4
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
5
エクセルVBA 指定範囲を指定回数繰り返しコピー
Excel(エクセル)
-
6
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
Excelマクロ 別シートへ連続コピペの方法
Excel(エクセル)
-
10
VBA 数式を最終行までコピー
Excel(エクセル)
-
11
Excel で行を指定回数だけコピーしたい
Excel(エクセル)
-
12
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
13
Excelで[表1]にあって、[表2]にないものを抽出する関数
その他(Microsoft Office)
-
14
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
15
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
16
データが入力されている隣のセルに当日日付と時刻を入力するExcel VBAプログラム
Visual Basic(VBA)
-
17
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
18
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
19
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
20
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
値貼り付けをしても書式も貼り...
-
Excel(VBA)データ入力に応じて...
-
エクセル VBA 小数点を含む数字...
-
Excelでセル内の数式は残し値だ...
-
Excelで周期的に列を削除する方法
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
合計等の計算を最終行に組み込...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
Excelのシートを、まとめて表示...
-
Accessのスプレッドシートエク...
-
VBAでシートコピー後、シート名...
-
Excelで金銭出納帳。繰越残高を...
-
別シート参照のセルをシート毎...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
エクセル VBA 小数点を含む数字...
-
Excel(VBA)データ入力に応じて...
-
値貼り付けをしても書式も貼り...
-
エクセルで全ての数字間にカン...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
-
並べ替えのマクロで対象行の範...
-
エクセルで、行ごとの並び替え...
-
Excelで周期的に列を削除する方法
-
行の入れ替えってどうするの?
-
整数行を残し小数点の行を削除...
-
Excelで更新日を自動的に入れたい
-
エクセル2003でマクロをおこな...
-
yyyy/mm/ddの日付に一括変換す...
おすすめ情報