Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8901 / 76732 ←次へ | 前へ→

【73399】Re:for〜nextで繰り返したい
回答    - 13/1/5(土) 9:02 -

引用なし
パスワード
   こんにちは。

for next の書き方、かたちは決まっているんです。
そのかたちのまんま書けばいいです。

・まず1行目に「for i = 1 to n」と書きます。
・その2行下に「next i」と書いてしまいます。
 あとで書こうと思っていると、忘れることがあります。
・そしてあいだの行に、繰り返したい内容をまずはコピペで持ってきて
 適宜字下げをおこない、
・ループのたびに変えたい部分を、iを使った形に書き換えます。
 今回のだったら、コピー元が i 行目になりますね。
・さいごに、ループのたびに実行しなくても1回実行すれば足りることを
 ループの外に追い出します。

山中成利さんのコードに、上記の手順をあてはめたコードがこれです。
改善の余地はありますが、それは for next とはべつの話です。
むつかしいことは一度に1つずつ、です。

Sub test()
 Dim i As Long
 Dim n As Long
 
 n = 3 '仮
 Windows("calculation.xls").Activate
 Sheets("data2").Select
 Rows("1:1").Select
 
 For i = 1 To n
  Windows("data.xls").Activate
  Rows(i & ":" & i).Select
  Selection.Copy
  Windows("calculation.xls").Activate
  ActiveSheet.Paste
 Next i

 Application.CutCopyMode = False
End Sub


▼山中成利 さん:
>1行目からn行目まで順に別のシートの1行目にコピーしたい。
>次のようなマクロで動かしているのですが、量が膨大になると書いてられません。
> 
>Windows("data.xls").Activate
>Rows("1:1").Select
>Selection.copy
>Windows("calculation.xls").Activate
>Sheets("data2").Select
>Rows("1:1").Select
>ActiveSheet.Paste
>Application.CutCopyMode = False
>
>Windows("data.xls").Activate
>Rows("2:2").Select
>Selection.copy
>Windows("calculation.xls").Activate
>Sheets("data2").Select
>Rows("1:1").Select
>ActiveSheet.Paste
>Application.CutCopyMode = False
>
>for nextの書き方がよくわかりません。
>ご教示願えれば幸いです。
>よろしく
225 hits

【73395】for〜nextで繰り返したい 山中成利 13/1/4(金) 20:36 質問
【73397】Re:for〜nextで繰り返したい UO3 13/1/4(金) 21:18 発言
【73398】Re:for〜nextで繰り返したい UO3 13/1/4(金) 21:24 発言
【73399】Re:for〜nextで繰り返したい 13/1/5(土) 9:02 回答

8901 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free