|
▼UO3 さん:
どうもありがとうございます。
offset、Resizeの使い方、
変数からマイナスして繰り返す方法
とても勉強になりました!
すっきりとしていて
私が悩んでいたコードって野暮ったいなと思ってしまいました。。。
これを印刷したいのですが、
1ページ目は1月、
2ページ目は2月となっています。
メッセージボックスから指定して印刷する方法はありますでしょうか。
後からの続けての質問で申し訳ございません。
もし分かりましたらよろしくお願い申し上げます。
>▼ひまこ さん:
>
>
>了解です。
>
>>初めの13段10列の表と同じものが
>>12回目に最終的に出来上がります。
>>コピーの1回目は元表からE3:J13を消した表
>>コピーの2回目は元表からE4:J13を消した表
>>以下続く、、という感じです。
>>(最初の質問はこの形でした)
>>
>>
>>もっと良い方法がある場合も含めて
>>考え方をアドバイス頂けると助かります。
>
>この考え方がシンプルでよろしいかと思います。
>以下、コード案です。
>
>Sub Sample()
> Dim i As Long
> Dim x As Long
> Dim n As Long
> Dim myR As Range
>
> '処理中の画面の動きを隠す
> Application.ScreenUpdating = False
>
> Set myR = Range("A1:J13") 'コピー領域
> '処理前に転記領域をクリア
> Range("A1", ActiveSheet.UsedRange).Offset(43).ClearContents
>
> For x = 1 To 12 '処理回数
> i = x * 43 + 1 '転記行番号
> myR.Copy Cells(i, "A") 'コピペ
> n = x + 1 'J列までの値がコピーされるべき行数
> If 13 - n > 0 Then
> 'D列までの値でいい領域につぃて、E〜J列の値をクリア
> Cells(i, "A").Offset(n, 4).Resize(13 - n, 6).ClearContents
> End If
> Next
>
> Application.ScreenUpdating = True
> MsgBox "転記終了です"
>
>End Sub
|
|