回答編集履歴
1
回答とコード修正
test
CHANGED
@@ -1,10 +1,19 @@
|
|
1
|
+
通貨型だとTransposeで文字列に変換されてしまうみたいですね。
|
1
|
-
|
2
|
+
数値型(Doubleなど)なら数値型のままのようです。
|
3
|
+
Dictionaryには数値型で格納しておいてあとで書式を通貨に設定するのではどうでしょう。
|
4
|
+
```vba
|
5
|
+
Sub dicPaste()
|
6
|
+
Dim dic As Variant
|
7
|
+
Set dic = CreateObject("Scripting.Dictionary")
|
8
|
+
dic.Add "A0001", CDbl(500)
|
9
|
+
dic.Add "A0002", CDbl(300)
|
10
|
+
dic.Add "A0003", CDbl(400)
|
11
|
+
dic.Add "A0004", CDbl(500)
|
12
|
+
dic.Add "A0005", CDbl(300)
|
13
|
+
dic.Add "A0006", CDbl(400)
|
2
14
|
|
3
|
-
```vba
|
4
|
-
' 一括で値をセットする→B列は文字列
|
15
|
+
' 一括で値をセットする→B列は文字列
|
5
16
|
Sheet1.Cells(1, 1).Resize(dic.Count, 1).Value = Application.Transpose(dic.keys)
|
6
|
-
Sheet1.Cells(1, 2).Resize(dic.Count, 1).Value = Application.Transpose(dic.Items)
|
17
|
+
Sheet1.Cells(1, 2).Resize(dic.Count, 1).Value = Application.Transpose(dic.Items)
|
7
|
-
' 一括で文字列から数値へ変更
|
8
|
-
Sheet1.Cells(1, 2).Resize(dic.Count, 1).
|
18
|
+
Sheet1.Cells(1, 2).Resize(dic.Count, 1).NumberFormatLocal = “\#,##0;-\#,##0”
|
9
19
|
```
|
10
|
-
|