Excel VBA質問箱 IV

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

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


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

【80950】選択セルのみ変更して繰り返す KH 19/6/24(月) 22:45 質問[未読]
【80951】Re:選択セルのみ変更して繰り返す マナ 19/6/24(月) 22:52 発言[未読]
【80952】Re:選択セルのみ変更して繰り返す KH 19/6/24(月) 23:43 発言[未読]
【80953】Re:選択セルのみ変更して繰り返す マナ 19/6/24(月) 23:58 発言[未読]
【80954】Re:選択セルのみ変更して繰り返す KH 19/6/25(火) 0:33 発言[未読]
【80955】Re:選択セルのみ変更して繰り返す ピンク 19/6/25(火) 16:52 発言[未読]
【80967】Re:選択セルのみ変更して繰り返す KH 19/6/26(水) 20:43 質問[未読]
【80968】Re:選択セルのみ変更して繰り返す ピンク 19/6/26(水) 21:24 発言[未読]
【80978】Re:選択セルのみ変更して繰り返す KH 19/6/27(木) 23:19 お礼[未読]

【80950】選択セルのみ変更して繰り返す
質問  KH  - 19/6/24(月) 22:45 -

引用なし
パスワード
   Range("C5").Select から始まる処理があるとします。
この最初の選択するセルのみC8、D14、F6などの任意のものに
変えて同じ処理をしたいです。
for next構文だと連続した数値や法則性のある数値を入れなければいけなくて
できません。

処理全体をコピーしてセルの選択位置を変更するしかないのでしょうか?
色々調べてみたのですが、このような繰り返し処理のやりかたが見つかりませんでした。
方法がありましたら、ご教授願います。

【80951】Re:選択セルのみ変更して繰り返す
発言  マナ  - 19/6/24(月) 22:52 -

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

具体例があるほうがよいです。
現在のコードの提示できませんか。

【80952】Re:選択セルのみ変更して繰り返す
発言  KH  - 19/6/24(月) 23:43 -

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

適当に作ったコードですが…

Sub 繰り返し処理()
  Range("C7").Select
  Selection.Offset(2, 1).Select
  Selection.Copy
  Selection.Offset(0, -1).Select
  Selection.PasteSpecial Paste:=xlPasteValues

End Sub

これの"C7"を"D13","F20","G31"など任意のものに変更して同じ処理をしたいです。

【80953】Re:選択セルのみ変更して繰り返す
発言  マナ  - 19/6/24(月) 23:58 -

引用なし
パスワード
   ▼KH さん:
>
>これの"C7"を"D13","F20","G31"など任意のものに変更して同じ処理をしたいです。

そういう意味ですか。
For each〜nextを使います。

Sub test()
  Dim c As Range

  For Each c In Range("C7,D13,F20,G31")
    MsgBox c.Address(0, 0)
  Next

End Sub

【80954】Re:選択セルのみ変更して繰り返す
発言  KH  - 19/6/25(火) 0:33 -

引用なし
パスワード
   ▼マナ さん:
以下の場合、どこをcにすればいいですか?
色々変えてみたのですが、うまくいきませんでした。

Sub 繰り返し処理()
  Dim c As Range
  For Each c In Range("C7,D13,F20,G31")  

   Range("C7").Select
   Selection.Offset(2, 1).Select
   Selection.Copy
   Selection.Offset(0, -1).Select
   Selection.PasteSpecial Paste:=xlPasteValues

  next
End Sub

【80955】Re:選択セルのみ変更して繰り返す
発言  ピンク  - 19/6/25(火) 16:52 -

引用なし
パスワード
   ▼KH さん:
>これの"C7"を"D13","F20","G31"など任意のものに変更して同じ処理をしたいです。
Sub Test()
  Dim c As Range
  For Each c In Range("C7,D13,F20,G31")
    c.Offset(2).Value = c.Offset(2, 1).Value
  Next
End Sub

【80967】Re:選択セルのみ変更して繰り返す
質問  KH  - 19/6/26(水) 20:43 -

引用なし
パスワード
   ▼ピンク さん:

ありがとうございました!
うまくいきました。
追加で質問なのですが、教えてもらったコードに
with構文を入れてcの前に「.」を追加したのですが、エラーが出ました。
このコードはおかしいでしょうか?


Sub Test()
  with sheets("A")
   Dim c As Range
   For Each c In Range("C7,D13,F20,G31")
     .c.Offset(2).Value = c.Offset(2, 1).Value
   Next
  end with
End Sub

【80968】Re:選択セルのみ変更して繰り返す
発言  ピンク  - 19/6/26(水) 21:24 -

引用なし
パスワード
   ▼KH さん:
>   For Each c In Range("C7,D13,F20,G31")
         In .Range("C7,D13,F20,G31")

Rangeの前に入れてください。

【80978】Re:選択セルのみ変更して繰り返す
お礼  KH  - 19/6/27(木) 23:19 -

引用なし
パスワード
   ▼ピンク さん:

そっちにいれれば良いんですね!
色々とありがとうございました

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