Excel VBA質問箱 IV

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

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


309 / 13645 ツリー ←次へ | 前へ→

【81071】範囲を選択して1セルずつコピー riki 19/8/14(水) 2:27 質問[未読]
【81072】Re:範囲を選択して1セルずつコピー ピンク 19/8/14(水) 7:07 発言[未読]
【81073】Re:範囲を選択して1セルずつコピー ピンク 19/8/14(水) 11:21 発言[未読]
【81074】Re:範囲を選択して1セルずつコピー ピンク 19/8/14(水) 11:25 発言[未読]
【81075】Re:範囲を選択して1セルずつコピー riki 19/8/14(水) 19:21 お礼[未読]

【81071】範囲を選択して1セルずつコピー
質問  riki  - 19/8/14(水) 2:27 -

引用なし
パスワード
   例えばA1の値をB2:G5の範囲に1分ごとにB2,B3,B4,B5,折り返してC2,C3・・・と
張り付けていきたいのですが、Range("c4:bj10").SpecialCells(xlCellTypeBlanks).Select
とするといっぺんに範囲全部にA1が張られてしまいます。
いろいろとググったのですが解らないので教えていただけたら幸いです。

【81072】Re:範囲を選択して1セルずつコピー
発言  ピンク  - 19/8/14(水) 7:07 -

引用なし
パスワード
   ▼riki さん:
>例えばA1の値をB2:G5の範囲に1分ごとにB2,B3,B4,B5,折り返してC2,C3・・・と
Sub Test()
  Dim c As Long, r As Long
  For c = 2 To 7
    For r = 2 To 5
      Range("A1").Copy Cells(r, c)
      Application.Wait (Now + TimeValue("00:01:00"))
    Next
  Next
End Sub

【81073】Re:範囲を選択して1セルずつコピー
発言  ピンク  - 19/8/14(水) 11:21 -

引用なし
パスワード
   Sub Test() では Application.Wait を使っているので
マクロ実行中はセルの操作ができないので
Application.OnTimeに変更しました。

Option Explicit
Dim myTime As Date
Dim myAddress As String
Sub 自動転記()

  If myAddress = "" Then
    myAddress = "B2"
  ElseIf myAddress = "$G$5" Then
    MsgBox "おわり"
    myAddress = ""
    Exit Sub
  ElseIf Range(myAddress).Row = 5 Then
    myAddress = Range(myAddress).Offset(-3, 1).Address
  Else
    myAddress = Range(myAddress).Offset(1).Address
  End If
  Range("A1").Copy Range(myAddress)
  myTime = Now + TimeValue("00:00:01")
  Application.OnTime TimeValue(myTime), "自動転記"
End Sub
Sub 自動転記停止()
  On Error Resume Next
  Application.OnTime TimeValue(myTime), "自動転記", , False
  myAddress = ""
  On Error GoTo 0
End Sub

【81074】Re:範囲を選択して1セルずつコピー
発言  ピンク  - 19/8/14(水) 11:25 -

引用なし
パスワード
   >1分ごとにB2,B3,B4,B5,折り返して
myTime = Now + TimeValue("00:00:01")
  ↓に訂正
myTime = Now + TimeValue("00:01:00")

【81075】Re:範囲を選択して1セルずつコピー
お礼  riki  - 19/8/14(水) 19:21 -

引用なし
パスワード
   ▼ピンク さん:
>>1分ごとにB2,B3,B4,B5,折り返して
>myTime = Now + TimeValue("00:00:01")
>  ↓に訂正
>myTime = Now + TimeValue("00:01:00")

ご丁寧に回答いただき、ありがとうございます。
さっそく試してみます。

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