回答編集履歴

2

しゅうせい2

2018/02/09 09:47

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -100,8 +100,6 @@
100
100
 
101
101
  Excelはできる限りがんばったけど解決できずエラーとなります。
102
102
 
103
- ※その前にSet句がない部分でエラーとなっていますけど。
104
-
105
103
 
106
104
 
107
105
  型を意識していないと思わぬ結果となりますよ、という話です。

1

修正

2018/02/09 09:47

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -1,8 +1,6 @@
1
1
  受け取りたい型は?
2
2
 
3
3
  ---
4
-
5
- sTempの型宣言について記載がなく、質問本文からも読み取れなかったのですが、
6
4
 
7
5
  `sTemp = wSh.Range(Cells(2, 3))`
8
6
 
@@ -16,7 +14,7 @@
16
14
 
17
15
 
18
16
 
19
- 前者であれば、
17
+ 前者(セルの値の代入)であれば、
20
18
 
21
19
  `sTemp = wSh.Cells(2, 3).Value`
22
20
 
@@ -24,17 +22,25 @@
24
22
 
25
23
 
26
24
 
25
+ 単一のセル範囲指定になっていればRangeプロパティを使って
26
+
27
+ `sTemp = wSh.Range(wSh.Cells(2, 3), wSh.Cells(2, 3)).Value`
28
+
29
+ としても取得できると思います。
30
+
31
+ しかし複数セル範囲が指定されたらエラーがおきそうです。
32
+
33
+
34
+
35
+
36
+
27
- 後者の場合、オブジェクトの代入になるのでSet句が必要です。
37
+ 後者(Rangeオブジェクトを代入)の場合、オブジェクトの代入になるのでSet句が必要です。
28
38
 
29
39
  `Set sTemp = wSh.Cells(2, 3)`
30
40
 
31
41
  または
32
42
 
33
43
  `Set sTemp = wSh.Range(wSh.Cells(2, 3), wSh.Cells(2, 3))`
34
-
35
-
36
-
37
- 当面の問題はこれで解決するのではないでしょうか?
38
44
 
39
45
 
40
46