Excel VBA質問箱 IV

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

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


8804 / 76732 ←次へ | 前へ→

【73496】Re:指定回数分セルをコピー
発言  UO3  - 13/1/16(水) 10:01 -

引用なし
パスワード
   ▼nonoka さん:

おはようございます

まず、消去なんですが、
アップ済みのコードは最初にINPUTシートの前回の状態をクリアしています。
で、追加で【クリアもしたい】といわれるのは、処理後、ただちに(自動で)クリアしたいということですか?
もし、そうなら、アップ済みのコードは、元ネタから INPUTシートと軽薄表シートの両方にコピペしていますので
そもそもがINPUTシートへのコピペをやめればよろしいのですが?

なので、以下のコードでは、処理後、INPUTシートにはコピペしたものが残っている。
そこで、INPUT消去 を実行すればクリアされるという構えにしてあります。
なお、このクリア処理は、本体(Sample2)の中でも共通プロシジャとして使用します。

Sub Sample2()
  Dim n As Long
  Dim shTo As Worksheet
  Dim z1 As Long
  Dim z2 As Long
  Dim x As Long
  Dim c As Range
  Dim flag As Boolean
  
  Set shTo = Sheets("計画表")
 
  With Sheets("INPUT")
    Call Input消去
    z1 = 7         'INPUTのコピー開始行
    For Each c In .Range("H5,J5")
      x = 5          'コピー列数
      If flag Then x = 4   '2回目は4列
      n = Val(c.Value)
      If n > 0 Then
        z2 = shTo.Range("C" & shTo.Rows.Count).End(xlUp).Row + 1
        .Range("C5").Resize(, x).Copy .Range("C" & z1).Resize(n)
        .Range("C5").Resize(, x).Copy shTo.Range("C" & z2).Resize(n)
        If flag Then
          .Range("C" & z1).Offset(, x).Resize(n).Value = n
          shTo.Range("C" & z2).Offset(, x).Resize(n).Value = n
        End If
        flag = True     '次は2回目
        z1 = z1 + n     '2回目のINPUTコピー開始行
      End If
    Next
  End With
 
End Sub

Sub Input消去()
  With Sheets("INPUT")
    Intersect(.Range("A1", .UsedRange).Offset(6), .Columns("C:G")).ClearContents
  End With
End Sub

369 hits

【73448】指定回数分セルをコピー nonoka 13/1/11(金) 18:26 質問
【73449】Re:指定回数分セルをコピー UO3 13/1/11(金) 19:02 発言
【73485】Re:指定回数分セルをコピー nonoka 13/1/15(火) 1:26 回答
【73496】Re:指定回数分セルをコピー UO3 13/1/16(水) 10:01 発言
【73573】Re:指定回数分セルをコピー nonoka 13/1/23(水) 10:21 質問
【73578】Re:指定回数分セルをコピー nonoka 13/1/24(木) 11:54 お礼

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