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

回答編集履歴

1

修正

2021/05/31 04:47

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -1,15 +1,17 @@
1
1
  自分で書くならこんな感じでしょうか。(ExcelVBAの例)
2
2
  ```VBA
3
3
  Function DQCSV(rng As Range) As String
4
+ Const DQ = """", COMMA = ","
4
5
  Dim i
5
6
  ReDim arr(1 To rng.Rows.Count)
6
7
  For i = 1 To rng.Rows.Count
7
- arr(i) = """" & Join(WorksheetFunction.Index(rng.Value, i, 0), """,""") & """"
8
+ arr(i) = DQ & Join(WorksheetFunction.Index(rng.Value, i, 0), DQ & COMMA & DQ) & DQ
8
- ' arr(i) = """" & WorksheetFunction.TextJoin(""",""", False, rng.Rows(i)) & """"
9
+ ' arr(i) = DQ & WorksheetFunction.TextJoin(DQ & COMMA & DQ, False, rng.Rows(i)) & DQ
9
10
  Next
10
11
  DQCSV = Join(arr, vbLf)
11
12
  End Function
12
13
 
14
+
13
15
  Sub test()
14
16
  Open "out.csv" For Output As #1
15
17
  Print #1, DQCSV(Sheet1.UsedRange)