Excel VBAに関する質問掲示板です。
Excel VBA 質問スレッド No.159 (解決済)
1~4の繰り返し処理について
投稿者 : ふぁんぐ 投稿日時 : 2021/01/09(Sat) 09:11:19 OS : Windows 8 EXCEL : Excel 2013
For Nextを使用して、
Worksheets1の1から最終行までの値を4つ区切りで
(1~4、5~8、…最終行)
Worksheets2の指定セルに置き換えて印刷する、
指定セル
1:D17
2:D46
3:X17
4:X46
最終行の値を取得し、セルの指定までできたのですが、
4つ区切りをどのようにすればよいのかご教授いただけないでしょうか。
初心者のため、お力添え下さい。
For Nextを使用して、
Worksheets1の1から最終行までの値を4つ区切りで
(1~4、5~8、…最終行)
Worksheets2の指定セルに置き換えて印刷する、
指定セル
1:D17
2:D46
3:X17
4:X46
最終行の値を取得し、セルの指定までできたのですが、
4つ区切りをどのようにすればよいのかご教授いただけないでしょうか。
初心者のため、お力添え下さい。
[返信 1] Re : 1~4の繰り返し処理について
投稿者 : EUNO 投稿日時 : 2021/01/09(Sat) 12:42:31
説明のために設定をシンプルにします。
(1)他のシートの特定セルの値を入れる部分を、それぞれ"A"などの文字列を入れます。
(2)プリントアウトしながらコードを修正していくのは非効率なのでdebub.printします。
※(1)の部分は最終的にはオブジェクト変数かWithステートメントに、(2)の部分はPrintoutメソッドに直します。
これを段階的に書いていきます。
まずは最初の4行のみ(印刷でいえば1枚目のみ)を処理してみます。
次に行数を変数にしてみます。
データ数は8(印刷で言えば2枚分)で処理してみます。
実際にはiには1と5が代入されます。
for i = 1 to (データの最終行) step 4 とすればできそうです。
Do Loopを使った方がスマートとは思いますが、ForNextでやるとこんな感じでしょうか。
説明のために設定をシンプルにします。
(1)他のシートの特定セルの値を入れる部分を、それぞれ"A"などの文字列を入れます。
(2)プリントアウトしながらコードを修正していくのは非効率なのでdebub.printします。
※(1)の部分は最終的にはオブジェクト変数かWithステートメントに、(2)の部分はPrintoutメソッドに直します。
これを段階的に書いていきます。
まずは最初の4行のみ(印刷でいえば1枚目のみ)を処理してみます。
Sub test()
Cells(1, 1) = "A"
Cells(2, 1) = "B"
Cells(3, 1) = "C"
Cells(4, 1) = "D"
End Sub
次に行数を変数にしてみます。
データ数は8(印刷で言えば2枚分)で処理してみます。
Sub test2()
Dim i As Long
For i = 1 To 8 Step 4
Cells(i, 1) = "A"
Cells(i + 1, 1) = "B"
Cells(i + 2, 1) = "C"
Cells(i + 3, 1) = "D"
Debug.Print i
Next i
End Sub
実際にはiには1と5が代入されます。
for i = 1 to (データの最終行) step 4 とすればできそうです。
Do Loopを使った方がスマートとは思いますが、ForNextでやるとこんな感じでしょうか。
[返信 2] Re : 1~4の繰り返し処理について
投稿者 : ふぁんぐ 投稿日時 : 2021/01/09(Sat) 18:39:58
ご教授いただき誠にありがとうございます。
応用し実践してみます!
ご教授いただき誠にありがとうございます。
応用し実践してみます!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
返信入力フォーム
( 処理日時 : 2021-01-27 12:40:24 )