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

回答編集履歴

3

コメント修正:数値型にする → 通貨型にする

2017/02/09 02:08

投稿

sk_3122
sk_3122

スコア1126

answer CHANGED
@@ -45,7 +45,7 @@
45
45
  If InStr(csvVal, "\") = 1 Then
46
46
  ' 先頭が \ マークの場合は一旦 通貨型にして比較
47
47
 
48
- ' ★数値型にする
48
+ ' ★通貨型にする
49
49
  Dim csvCur As Currency
50
50
  csvCur = CCur(csvVal)
51
51
 

2

不要な行を削除

2017/02/09 02:08

投稿

sk_3122
sk_3122

スコア1126

answer CHANGED
@@ -53,7 +53,6 @@
53
53
  Dim chk As String: chk = CStr(csvCur)
54
54
 
55
55
  ' ★比較
56
- ' Compare = (cellVal = chk)
57
56
  Compare = (cellVal = chk)
58
57
  Else
59
58
  ' それ以外の場合はそのまま比較

1

エラー処理について言及

2017/02/08 04:10

投稿

sk_3122
sk_3122

スコア1126

answer CHANGED
@@ -1,10 +1,12 @@
1
1
  CSV の値を読み込んだ時に、先頭が ¥ だったら 「CSV の値を通貨型に変換」 してから比較するのはどうですか?
2
-
3
2
  …と思いましたが、それだとセル側が数値型とかでも一致とみなされますね…
4
3
 
5
4
  もし「Cell:数値型 12345」 「CSV:\12,345」の場合に一致としたくないなら、さらにセルの書式設定なども見て判定する必要がありますね。
6
- (NumberFormatLocal ですかね)
5
+ (NumberFormatLocal ですかね)
7
6
 
7
+ あと、"\123a" みたいな値がある場合を考慮するなら、「通貨型への変換に失敗したら、単純に文字列として比較する」みたいな処理も必要ですね。
8
+
9
+
8
10
  ```vba
9
11
  Sub ボタン1_Click()
10
12
  Call Test