アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちはエクセルのマクロでループについて教えて頂けませんか?

下記の通り、2行の貼り付けフィールドをクリアして、2行のデータを張り付けています。

これを貼り付けフィールドは変更せず参照データを指定秒数ごとに変更したいと思います。
張り付けるデータは2行をワンセットとして8種類、8種類が終わればまた最初に戻ると言うものです。

詳しい方、よろしくお願いいたします。

Sub データスクロール()

Range("D212:AC213").Select  ' 貼り付け範囲のクリア
Selection.ClearContents

Range("D272:AC272").Copy Range("D212")  'データ 1種類目
Range("D262:AC262").Copy Range("D213")  'データ 1種類目

End Sub

以下、貼り付けデータ

Range("D273:AC273").Copy Range("D212")  'データ 2種類目
Range("D263:AC263").Copy Range("D213")  'データ 2種類目

Range("D274:AC274").Copy Range("D212")  'データ 3種類目
Range("D264:AC264").Copy Range("D213")  'データ 3種類目

Range("D275:AC275").Copy Range("D212")  'データ 4種類目
Range("D265:AC265").Copy Range("D213")  'データ 4種類目

Range("D276:AC276").Copy Range("D212")  'データ 5種類目
Range("D266:AC266").Copy Range("D213")  'データ 5種類目

Range("D277:AC277").Copy Range("D212")  'データ 6種類目
Range("D267:AC267").Copy Range("D213")  'データ 6種類目

Range("D278:AC278").Copy Range("D212")  'データ 7種類目
Range("D268:AC268").Copy Range("D213")  'データ 7種類目

Range("D279:AC279").Copy Range("D212")  'データ 8種類目
Range("D269:AC269").Copy Range("D213")  'データ 8種類目

A 回答 (1件)

こんな感じでしょうか?



Option Explicit

Const 秒数 As String = "00:00:02" '秒数指定
Dim シート名 As String
Dim 行 As Long

Sub Sample()
 シート名 = ActiveSheet.Name
 Range("D212:AC213").Select
 Selection.ClearContents
 行 = 272
 Call データスクロール
End Sub

Sub データスクロール(Optional ダミー As Boolean)
 If シート名 = ActiveSheet.Name Then
  Range("D" & 行 & ":AC" & 行).Copy Range("D212")
  行 = 行 - 10
  Range("D" & 行 & ":AC" & 行).Copy Range("D213")
  If 行 < 269 Then
   行 = 行 + 11
  Else
   行 = 行 + 3
  End If
  Application.OnTime Earliesttime:=Now + TimeValue(秒数), Procedure:="データスクロール"
 End If
End Sub

※ とりあえず2秒間隔で書き換わります。「"00:00:02"」を適当に変更して下さい。
※ やめたい時は別のシートに切り替えて設定時間以上お待ちください。
※「Optional ダミー As Boolean」はマクロの選択欄に「データスクロール」マクロを表示させない為です。
※ その他不明な事など有ったら聞いて下さい。
    • good
    • 0
この回答へのお礼

回答いただき ありがとうございます。
ばっちり出来ました、これでだいぶ使いやすくなります。

実際に手を割いていただき感謝感激です!

お礼日時:2020/01/25 12:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!