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

質問編集履歴

2

タイトルの補足

2017/02/08 02:49

投稿

ot2os
ot2os

スコア23

title CHANGED
@@ -1,1 +1,1 @@
1
- Excelで\マーク付きの金額欄が通貨として扱われるが、VBAで開くと文字列として扱われる
1
+ Excelでcsvの\マーク付きの金額欄が通貨として扱われるが、VBAで開くと文字列として扱われる
body CHANGED
File without changes

1

直接の原因となっている部分が判明したため、質問の要点を変更

2017/02/08 02:49

投稿

ot2os
ot2os

スコア23

title CHANGED
@@ -1,1 +1,1 @@
1
- ExcelのVBA\マーク付きの金額欄が通貨として扱われたり文字列として扱われたりす
1
+ Excelで\マーク付きの金額欄が通貨として扱われるが、VBAで開くと文字列として扱われる
body CHANGED
@@ -21,22 +21,24 @@
21
21
  判定されてコピペされてしまいます。
22
22
 
23
23
  ●確認したこと:
24
- コピペしたセルの内容を数式バーで確認してみると、今まで手動でコピペしていた部分は金額欄が
24
+ セルの内容を数式バーで確認してみると、今まで手動でコピペしていた部分は金額欄が
25
25
  下記のように数字になっており、形式は「通貨」になっています。
26
+ 該当csvをダブルクリックでExcelから開いても同様です。
26
27
 
27
28
  494640
28
29
 
29
- 今回VBAでコピペし部分下記のように数式バーはバックスラッシュ記号と
30
+ 今回VBAで開いcsvファイルは、「Workbooks.Open Filename:=」コマンド開いた時点で、
30
- カンマ付きの文字列として張り付いています。
31
+ 下記のように数式バーでバックスラッシュ記号とカンマ付きの文字列として扱われています。
31
32
 
32
33
  \300,321 ←\はバックスラッシュ
33
34
 
34
- おそらくExcelの仕様だと思うのですが、手動コピペしたときとVBAのPasteSpecialコマンドとで
35
+ おそらくExcelの仕様だと思うのですが、ダブルクリックcsvファイルを開いと、
36
+ 「Workbooks.Open Filename:=」コマンドでcsvファイルを開いた時とで
35
- コピペしたときのセルの形式が変わってしまようです。
37
+ 金額部分のセルの表示が変わってしまっているようです。
36
38
 
37
- csvファイルをそのままExcelで開くと金額部分の数式バーは「300321」のような
38
- 数字で表示さていますが、VBAのIf分判定する、別物(\300,321)と判定されようです。
39
+ れが原因で過去に手動でコピペしたセルとVBAで開いたcsvのセルが一致しないと判定されてしまうようです。
39
40
 
41
+
40
42
  ●実際のコード:
41
43
  コピペは下記のコードで実施しました。
42
44
 
@@ -90,6 +92,5 @@
90
92
 
91
93
 
92
94
 
93
- VBA上でこのような通貨記号を含むcsvファイルを、Excel数式バー上の表示らない形式で
95
+ VBA上でcsvファイルを開くときファイルをダブルクリックで開いた時同じ値にるように
94
- 値を取り出し、If文等での比較ができようにしたいです
96
+ 処理すことはきまでしょうか?
95
- また、手動でコピペしたときと同じ挙動になるようにコピー&ペーストする方法を教えてください。