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

回答編集履歴

2

しゅうせい2

2018/02/09 09:47

投稿

jawa
jawa

スコア3021

answer CHANGED
@@ -49,7 +49,6 @@
49
49
 
50
50
  しかしそのセルにはアドレス文字列として使用できるような文字は入力されていませんでした。
51
51
  Excelはできる限りがんばったけど解決できずエラーとなります。
52
- ※その前にSet句がない部分でエラーとなっていますけど。
53
52
 
54
53
  型を意識していないと思わぬ結果となりますよ、という話です。
55
54
  参考になれば幸いです。

1

修正

2018/02/09 09:47

投稿

jawa
jawa

スコア3021

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
  ここからは補足情報です。