teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

3109さまの回答を踏まえ、Variant型配列を用いたコードに書き換えました。

2018/08/25 23:51

投稿

TanakaHiroaki
TanakaHiroaki

スコア1065

answer CHANGED
@@ -1,6 +1,23 @@
1
1
  不本意かもしれませんが、for next 構文で1行ずつ処理すると実現できます。
2
2
  ```ここに言語を入力
3
+ Option Explicit
4
+ Option Base 1
5
+
6
+ Sub hoge()
7
+ Dim 市場価格_列 As Long: 市場価格_列 = 1
8
+ Dim 販売価格_列 As Long: 販売価格_列 = 2
9
+
10
+ Dim Vlist() As Variant
11
+ ReDim Vlist(256, 1)
12
+
13
+ Dim cnt As Long
14
+
3
- For cnt = 1 To 256
15
+ For cnt = 1 To 256
4
- Cells(cnt, 販売価格_列).Formula = "= Cells(" & cnt & ", " & 市場価格_列 & ")"
16
+ Vlist(cnt, 1) = CStr("=" & Cells(cnt, 市場価格_列).Address)
5
- Next cnt
17
+ Next cnt
18
+
19
+ Range(Cells(1, 販売価格_列), Cells(256, 販売価格_列)).Formula = Vlist
20
+ End Sub
6
- ```
21
+ ```
22
+ 3109さまの回答を踏まえ、コードを修正しました。
23
+ Variant型配列でセルへの転記処理を高速化できます。