- 締切済み
InDesign CSV データ結合
InDesign CS4 で CSVファイルからデータ結合を しようとしています。 CSVを読み込みましたが、部分的に読み込まれない部分があります。 CSVの改行を削除をしたりしていますが、解決できません。 改行以外の原因は他にありますか? セル内のデータには、 10:00~12:00 14:00~21:00 という文字列が含まれますが、 それらも読み込まれている箇所と、そうでない箇所があります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
EXCELで開けない? 途中まで表示されているんなら、そこの行の改行か、途中の区切り文字が壊れているのでは?? もし全然開けない場合は、これを使ってみてください。 問題のファイルの、問題の行の頭の方は見えると思います。。 EXCELのVBAマクロですが、これでCSVを作業中のシートに表示できます。 行数は、xRowsに指定する。0は全行になる。 '選択されたCSVファイル(限定)のデータを指定行数分だけアクティブシートに貼付け 'CSVファイルの区切り文字はカンマに限らない 'GetOpenFilenameメソッドで[ファイルを開く]ダイアログボックスを表示 Sub Get_Open_FileName() Const xHeadSkip = 0 Const xRows = 0 Const xDelimiter = "," Dim OpenFileName Dim sh As Worksheet Dim rn As Range Dim jj As Long Dim kk As Long Dim nn As Long Dim Fno As Long, txtData, arrData ActiveSheet.UsedRange.Delete Set wScriptHost = CreateObject("Wscript.Shell") 'カレントディレクトリ:デスクトップ ChDir wScriptHost.SpecialFolders("Desktop") 'フォルダ内全ファイルを対象にする OpenFileName = Application.GetOpenFilename("CSVファイル,*.csv") If OpenFileName <> False Then Fno = FreeFile Open OpenFileName For Input As #Fno For jj = 1 To xHeadSkip '先頭から指定行数分スキップ Line Input #Fno, txtData Next jj nn = 0 ActiveSheet.Range("A1").Offset(nn, 0).Value = OpenFileName & " >>" Do While Not EOF(Fno) nn = nn + 1 Line Input #Fno, txtData '区切り記号がカンマ以外の場合は、Split関数の第2引数を変更 arrData = Split(txtData, xDelimiter) xColumn = UBound(arrData) If (UBound(arrData) >= ActiveSheet.Columns.Count - 1) Then xColumn = ActiveSheet.Columns.Count - 1 MsgBox ("Broken File?? :" & OpenFileName) End If 'xColumn = Application.WorksheetFunction.Min(UBound(arrData), ActiveSheet.Columns.Count - 1) For kk = 0 To xColumn '引用符を削除:セル単位に処理 ActiveSheet.Range("A1").Offset(nn, kk).Value = Replace(arrData(kk), """", "") Next kk '指定行数分だけ If (xRows <> 0) and (nn > xRows - 1) Then Exit Do Loop Close #Fno End If 'ActiveSheet.Columns("A:B").AutoFit ActiveSheet.Columns("B").AutoFit ActiveSheet.Select End Sub
- yuching
- ベストアンサー率80% (4/5)
セル内のデータということはExcelで入力してcsv形式に保存ということでしょうか? 原因として考えられるのは。 Excelであれば読み込まれていないセルの書式設定の表示形式が「文字列」になっていないからかもしれません。
お礼
回答ありがとうございます。
お礼
回答ありがとうございます。