回答編集履歴
2
しゅうせい2
answer
CHANGED
@@ -49,7 +49,6 @@
|
|
49
49
|
|
50
50
|
しかしそのセルにはアドレス文字列として使用できるような文字は入力されていませんでした。
|
51
51
|
Excelはできる限りがんばったけど解決できずエラーとなります。
|
52
|
-
※その前にSet句がない部分でエラーとなっていますけど。
|
53
52
|
|
54
53
|
型を意識していないと思わぬ結果となりますよ、という話です。
|
55
54
|
参考になれば幸いです。
|
1
修正
answer
CHANGED
@@ -1,24 +1,27 @@
|
|
1
1
|
受け取りたい型は?
|
2
2
|
---
|
3
|
-
sTempの型宣言について記載がなく、質問本文からも読み取れなかったのですが、
|
4
3
|
`sTemp = wSh.Range(Cells(2, 3))`
|
5
4
|
の処理でsTempには何を受け取りたいのでしょうか?
|
6
5
|
|
7
6
|
C2セルに入力されている値ですか?
|
8
7
|
それともC2セルを指すRangeオブジェクトですか?
|
9
8
|
|
10
|
-
前者であれば、
|
9
|
+
前者(セルの値の代入)であれば、
|
11
10
|
`sTemp = wSh.Cells(2, 3).Value`
|
12
11
|
とすればよいです。
|
13
12
|
|
13
|
+
単一のセル範囲指定になっていればRangeプロパティを使って
|
14
|
+
`sTemp = wSh.Range(wSh.Cells(2, 3), wSh.Cells(2, 3)).Value`
|
15
|
+
としても取得できると思います。
|
16
|
+
しかし複数セル範囲が指定されたらエラーがおきそうです。
|
17
|
+
|
18
|
+
|
14
|
-
後者の場合、オブジェクトの代入になるのでSet句が必要です。
|
19
|
+
後者(Rangeオブジェクトを代入)の場合、オブジェクトの代入になるのでSet句が必要です。
|
15
20
|
`Set sTemp = wSh.Cells(2, 3)`
|
16
21
|
または
|
17
22
|
`Set sTemp = wSh.Range(wSh.Cells(2, 3), wSh.Cells(2, 3))`
|
18
23
|
|
19
|
-
当面の問題はこれで解決するのではないでしょうか?
|
20
24
|
|
21
|
-
|
22
25
|
Rangeプロパティの指定方法について
|
23
26
|
---
|
24
27
|
ここからは補足情報です。
|