
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel ある部分だけをコピペし...
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
エクセルのマクロについて質問...
-
エクセル オートフィルタの抽...
-
値貼り付けをしても書式も貼り...
-
別シート参照のセルをシート毎...
-
エクセルの複数シートの保護を...
-
特定のシートの削除を禁止した...
-
前の(左隣の)シートを連続参...
-
特定のセルだけ結果がおかしい...
-
エクセルでファイルを開いたと...
-
Excelで金銭出納帳。繰越残高を...
-
シートの保護のあとセルの列、...
-
VBAでシートコピー後、シート名...
-
シートを追加・名前を次月に変...
-
Excel、同じフォルダ内のExcel...
-
エクセルで前シートを参照して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
Excel にて非表示行を探すワー...
-
条件に応じて特定の行を非表示...
-
excel ある部分だけをコピペし...
-
エクセルで全ての数字間にカン...
-
エクセル VBA 小数点を含む数字...
-
Excel2007 セルを右方向に削除...
-
値貼り付けをしても書式も貼り...
-
Excel(VBA)データ入力に応じて...
-
「マクロ」の足し算の式を教え...
-
Excelでセル内の数式は残し値だ...
-
wordのvbaでハイパーリンク設定...
-
エクセル2003でマクロをおこな...
-
VBA コピーを有効行までループ...
-
エクセルで特定の行を消して間...
-
EXCEL マクロで「キーワード入...
-
エクセル マクロ オートシェ...
-
yyyy/mm/ddの日付に一括変換す...
-
Excelで周期的に列を削除する方法
-
並べ替えのマクロで対象行の範...
おすすめ情報