Excel VBA質問箱 IV

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

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


2318 / 13644 ツリー ←次へ | 前へ→

【68736】条件によって異なる範囲に値をコピーする方法 青空 11/4/13(水) 11:55 質問[未読]
【68741】Re:条件によって異なる範囲に値をコピーす... Abebobo 11/4/13(水) 13:52 発言[未読]
【68750】条件によって異なる範囲に値をコピーする方... 青空 11/4/13(水) 21:40 質問[未読]
【68756】Re:条件によって異なる範囲に値をコピーす... Abebobo 11/4/14(木) 11:01 発言[未読]
【68758】条件によって異なる範囲に値をコピーする方... 青空 11/4/14(木) 18:42 お礼[未読]

【68736】条件によって異なる範囲に値をコピーする...
質問  青空  - 11/4/13(水) 11:55 -

引用なし
パスワード
   INDEX関数で検索したD53〜I58までの値を条件によってコピー元からコピー先に
値を貼り付ける方法を教えて下さい。
コピー元は、D4〜U9までの範囲でコピー元は、D14〜U19までの範囲です。

例として
D53が1であればD4〜F4の3列の値をD14〜F14のセル地のコピー
D53が7であればD5〜F5の3列の値をD14〜F14のセル地のコピー
D53が10であればM4〜O4の3列の値をD14〜F14のセル地のコピー作業を行い
コピー先は、3列づつ右側にコピーを繰り返してS14〜U14に値をコピーしたら
1列下がってD15〜F15から再びコピーを繰り返してI58の値の条件をS14〜S19まで
36回コピーして処理を終了する方法を教えて下さい。

【68741】Re:条件によって異なる範囲に値をコピー...
発言  Abebobo  - 11/4/13(水) 13:52 -

引用なし
パスワード
   私は、日本語も理解する能力が低い為、後半の質問が理解できません。
前半の質問のサンプルです。
二つのサンプルを理解し組み合わせると、良いせんまでいきませんか?

'D53〜I58までの値を・・・
Sub Sample_for()
Dim M_Sh As Worksheet
Dim a_R  As Range
Dim f_R  As Range

Set M_Sh = ActiveSheet
With M_Sh
 Set a_R = .Range("D53:I58")
 For Each f_R In a_R
  Debug.Print f_R.Value
 Next f_R
End With

End Sub

'例として
'D53が1であればD4〜F4の3列の値をD14〜F14
'D53が7であればD5〜F5の3列の値をD14〜F14
'D53が10であればM4〜O4の3列の値を
Sub Sample_Case()
Dim M_Sh As Worksheet
Dim My_R As Range

Set M_Sh = ActiveSheet
With M_Sh
 Select Case .Range("D53").Value
  Case 1
   Set My_R = .Range("D4:F4")
  Case 7
   Set My_R = .Range("D5:F5")
  Case 10
   Set My_R = .Range("M4:O4")
  Case Else
   Set My_R = .Range("A4:C4")
 End Select
End With

Debug.Print My_R.Address
  
End Sub

【68750】条件によって異なる範囲に値をコピーする...
質問  青空  - 11/4/13(水) 21:40 -

引用なし
パスワード
   Abeboboさんありがとうございました。

目的の表を表示を省略したため大変分かりずらい質問になってしまい申し訳ありません。
改めて質問します。

  D E F G H I J K L M N O P Q R S T U                 
4 - - - 1 0 9 7 0 5 5 0 5 2 0 2 2 0 3
5 9 0 1 - - - 2 2 6 2 0 4 1 0 3 3 0 0
6 5 0 7 6 2 2 - - - 5 0 3 1 0 7 7 0 2
7 8 2 2 4 1 1 2 0 4 - - - 3 0 2 5 1 2
8 3 0 2 4 0 2 2 0 5 2 0 3 - - - 2 1 0
9 3 2 4 4 0 4 2 0 5 2 0 6 4 1 1 - - -

  D E F G H I
53  1 4 2 5 3 6
54 19 22 20 23 21 24
55  7 10 8 11 9 12
56 25 28 26 29 27 30
57 13 16 14 17 15 18
58 31 34 32 35 33 36


D53が1であればD4〜F4の3列の値をD14〜F14のセル地のコピー
D53が2であればG4〜I4の3列の値をD14〜F14のセル地のコピー
D53が7であればG5〜I5の3列の値をD14〜F14のセル地のコピー
H58が33であればJ9〜L9の3列の値をP19〜R19のセル地のコピー
I58が36であればS9〜U9の3列の値をS19〜U19のセル地のコピー
3列づつのセルの値をD53からI58まで36通りの数値に対して
コピー元(D4〜U9)の値をコピー先(D14〜U19)に貼り付けたいと考えてます。
宜しくお願いします。

【68756】Re:条件によって異なる範囲に値をコピー...
発言  Abebobo  - 11/4/14(木) 11:01 -

引用なし
パスワード
   >D53が1であればD4〜F4の3列の値をD14〜F14のセル地のコピー

D53が1であればD4〜F4の3列の値をコピーして、D14〜F14に貼り付け

>D53が7であればG5〜I5の3列の値をD14〜F14のセル地のコピー
>H58が33であればJ9〜L9の3列の値をP19〜R19のセル地のコピー

D53が7であればG5〜I5の3列の値をコピーして、D14〜F14に貼り付け
D53が上記以外のとき or D53の値とは関係なく
H58が33であればJ9〜L9の3列の値をコピーして、P19〜R19に貼り付け
D53とH58が上記以外のとき or D53・I58の値とは関係なく ・・・

>・・・36通りの数値・・・・
で内容は解かるかも知れませんが、


まるっとコードをお求めなら、私はこれで
って、えらそうな事を言えるほどの実力/知識はありませんが

【68758】条件によって異なる範囲に値をコピーする...
お礼  青空  - 11/4/14(木) 18:42 -

引用なし
パスワード
   Abebobo さん
ありがとうがざいました。

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