回答編集履歴

2

誤字修正

2023/05/01 10:56

投稿

hatena19
hatena19

スコア33782

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ```vba
4
4
  With Worksheets("MP")
5
- .Range("JG7:JI7").Offset(i, 0).Value =.Evaluate(.Cells(7 + i, 9).Adress & "*" & .("P7:R7").Offset(i, 0).Adress)
5
+ .Range("JG7:JI7").Offset(i, 0).Value =.Evaluate(.Cells(7 + i, 9).Address & "*" & .("P7:R7").Offset(i, 0).Address)
6
6
  End With
7
7
  ```
8
8
 
@@ -12,7 +12,7 @@
12
12
  例えば10行分の範囲で乗算したいなら、
13
13
  ```vba
14
14
  With Worksheets("MP")
15
- .Range("JG7:JI7").Resize(10).Value =.Evaluate(.Cells(7, 9).Resize(10).Adress & "*" & .("P7:R7").Resize(10).Adress)
15
+ .Range("JG7:JI7").Resize(10).Value =.Evaluate(.Cells(7, 9).Resize(10).Address & "*" & .("P7:R7").Resize(10).Address)
16
16
  End With
17
17
  ```
18
18
 

1

コード追記

2023/05/01 10:29

投稿

hatena19
hatena19

スコア33782

test CHANGED
@@ -5,3 +5,15 @@
5
5
  .Range("JG7:JI7").Offset(i, 0).Value =.Evaluate(.Cells(7 + i, 9).Adress & "*" & .("P7:R7").Offset(i, 0).Adress)
6
6
  End With
7
7
  ```
8
+
9
+ ---
10
+ さらにいえば、Evaluateは矩形範囲の乗算もできますので、Forループする必要もないですね。
11
+
12
+ 例えば10行分の範囲で乗算したいなら、
13
+ ```vba
14
+ With Worksheets("MP")
15
+ .Range("JG7:JI7").Resize(10).Value =.Evaluate(.Cells(7, 9).Resize(10).Adress & "*" & .("P7:R7").Resize(10).Adress)
16
+ End With
17
+ ```
18
+
19
+