質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

786閲覧

VBAでシートをCSVとして出力すると特定の文字列が勝手に書き換えられる

tatatace

総合スコア2

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/12/01 07:01

シートに設置したボタンをクリックすると、シート内のセルに入力されている内容をCSVとして保存するマクロを組みました。

VBA

1Dim ws As Worksheet 2 Set ws = Worksheets("sheet1") 3 4 Dim csvFile As String 5 csvFile = "保存先ディレクトリ¥出力.csv" 6 7 Open csvFile For Output As #1 8 9 Dim i As Long, j As Long 10 i = 1 11 12 Do While ws.Cells(i, 1).Value <> "" 13 14 j = 1 15 Do While ws.Cells(i, j + 1).Value <> "" 16 17 Print #1, ws.Cells(i, j).Value & ","; 18 j = j + 1 19 20 Loop 21 22 Print #1, ws.Cells(i, j).Value & vbCr; 23 i = i + 1 24 25 Loop 26 27 Close #1

出力されたcsvをエクセルで開いて確認すると「01-1」という文字列が勝手に日付に変換されていたり、「01」「02」といった文字列が「1」「2」に変換されてしまいます。
メモ帳で開いて確認すると、「01-1」という文字列は日付に変換されずに正常に表示されるのですが、「01」「02」といった文字列は相変わらず「1」「2」に変換されてしまいます。

どうすれば勝手な変換・変更を止められますか

win10 64bit
excel 2013 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

原因は質問本文に書いたマクロでは、空白セルを検出した時点で次の行を処理することになることが原因で改行直前のセルの内容と直後のセルの内容が融合してしまっていたことでした。
日付に書き換わるのはエクセルの使用とごっちゃにして考えていたので、融合によって文字列が変わっていることに気がつかず、なにか変換されているのだと決め付けてしまっていました。

VBA

1ActiveWorkbook.SaveAs filename:="保存先ディレクトリ¥出力.csv", FileFormat:=xlCSV, CreateBackup:=False

これでCSV出力すれば解決しました。
日付に変換される問題については、出力時ではなく、CSVをエクセルに入力した時点で発生していることがわかり、当方の環境では問題がないことが発覚したのでこれで解決ということにさせていただきます。

投稿2021/12/01 07:23

tatatace

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ws.Cells(i, j + 1).Value の部分を ws.Cells(i, j + 1).Text としたらどうでしょう。

投稿2021/12/01 07:22

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatatace

2021/12/01 07:42

ご回答ありがとうございます。 試してみましたが、結果変わらずでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問