回答編集履歴

1

回答とコード修正

2023/01/29 09:11

投稿

hatena19
hatena19

スコア33715

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).TextToColumns Comma:=True
18
+ Sheet1.Cells(1, 2).Resize(dic.Count, 1).NumberFormatLocal = “\#,##0;-\#,##0”
9
19
  ```
10
-