- ベストアンサー
エクセルでCSVを開く時の表示設定について
- エクセルでCSVを開いた際に生じる表示設定の問題について説明します。
- エクセルの設定や外部データ読み込み機能を使用することで問題を解決する方法を提案します。
- ACCESSでは問題を回避できるが、別の方法を使用する必要がある場合についても触れます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
》 外部データ読み込み機能を使い、文字列型で読み込めば該当の 》 フィールドは改善することはわかっているのですが、commentの 》 値に改行が含まれていると、その改行で1段下にずれて、… 少し違うような。 以下は Excel 2002 の場合だけど、Excel 2007 も同様な機能がないかを調べてみてください。ここで、貴方の「あるCSV」のファイル名を one.csv と仮定しておきます。 1.[データ]→[外部データの取り込み]→「データの取り込み」を実行 2.one.csv を探して[開く]をクリック 3.[テキストファイルウィザード-1/3]で“カンマやタブなどの…”に目玉を入れて[次へ]をクリック 4.[テキストファイルウィザード-2/3]で“カンマ”にチェックを入れて[次へ]をクリック 5.[テキストファイルウィザード-3/3]で jusho3 の列上の“G/標準”だけをクリックした後で、上段 右にある[列のデータ形式]窓内の“文字列”に目玉を入れて[完了]をクリック 6.“既存のワークシート”または“新規ワークシート”を選択して[OK]ボタンを「エイヤッ!」と叩 き付け
その他の回答 (4)
- oct1290
- ベストアンサー率35% (75/213)
ためしに質問の内容をコピーし実際に実行しましたが回答者No1の方の方法で出来ました、 CSVデータは結構見えない部分でインポートすると良く日付になったりとします、 基本的にテキストで開き確認し問題ないCSVならCSVにする時点の問題が多いと思われます、 私も同様の無いようで何ヶ月も悩みましたがCSV配布元プログラムの不具合であったことが良くありました。 他の回答者様のように ODBCで文字として取りこめるなら逆にそのCSVもしくはテキストになる時点での問題かと思います、
- imogasi
- ベストアンサー率27% (4737/17069)
下記のことをはっきりさせて質問すべきでしょう。 >この事象を、エクセルの設定などで改善する策はあるのでしょうか 質問者と別に、利用者がいるようだが (1)今回限りのことで、思うどおりのものを質問者がつくって、利用者に渡せば終わり(これなら「外部データ読み込み」操作を使って終わりなのだが、そうではないようだな) (2)今後な何度も繰返すので、質問者側で解決する方法を見つけたい。 (毎回外部データ読み込み機能を利用者側でさせられないのかな) (3)利用者にマニュアル的に伝授するための内容(方法)を考え中とか? (4)今後はデータ作成元ーー>利用者へデータが供給され、質問者の介入は出来ないのか? など。 (4)だと利用者にやり方を伝えるだけでよいかな。 ーー >、jusho3のフィールドが日付で表示されてしまいます エクセルではハイフンを挟んだ数字は、日付と解釈される。これが原因でしょう。 CSVの段階で、全角の文字列に変更するとそういうことはなくなると思うが。 ーー >commentの値に改行が含まれていると、その改行で1段下にずれて、変なレコードとして登録されてしまうみたいです これも放置して利用者に渡すと面食らう(読みにくいなど苦情が出る)ことは無いのか。 これもセル内改行(コード10)に変えられないのか? === 利用者のことを勝手に慮って、色々要っているが、質問者が出来ることはどの程度までか。 (1)質問者の段階で、引渡し前にデータの多少の修正 (2)マクロで即時自動的に修正捜査を(利用者側で実行してもらう (3)原データ(CSV)の作成者で手を打ってもらう これがはっきりしないと答えようが無いのでは。
- end-u
- ベストアンサー率79% (496/625)
[外部データの取り込み]の応用でODBC接続を使えば良いです。 1)[データ]タブ[外部データの取り込み]-[その他のデータソース]-[MicrosofQuery]。 (「データソースの選択」ダイアログが開く) 2)[データベース]タブの<新規データソース>選択して[OK]。 (「新規データソースの作成」ダイアログが開く) 3)新規テータソース名..に(例えば) 『 test 』と入力。 4)アクセスするデータベースの種類..で 『 Microsoft Text Driver (*.txt; *.csv) 』を選択。 5)[接続]をクリック。 (「ODBCテキストセットアップ」ダイアログが開く) 6)「現在のフォルダを使用する」チェックを外し、 [フォルダの選択]クリックしてcsvファイルを置いたフォルダを指定して[OK]。 7)「ODBCテキストセットアップ」ダイアログを[OK]で閉じる。 8)「新規データソースの作成」ダイアログを[OK]で閉じる。 (「データソースの選択」ダイアログ[OK]で「クエリウィザード」開始) 9)対象csvファイルを選択して[>]ボタンをクリックし、 全フィールドを対象にする。 10)[次へ]×3回で[完了]。 (「データのインポート」ダイアログが開く) 11)「テーブル」を選択し、データを返す先を設定して[OK]。 ...というような手順です。 結構メンドウなんですよね。 マクロで良ければ Sub Macro() Dim cnct(2) As String Dim p As Long Dim x x = Application.GetOpenFilename("csv,*.csv,all,*.*") If VarType(x) = vbBoolean Then Exit Sub p = InStrRev(x, "\") cnct(0) = "ODBC" cnct(1) = "Driver={Microsoft Text Driver (*.txt; *.csv)}" cnct(2) = "DBQ=" & Left$(x, p) With Sheets.Add With .QueryTables.Add(Connection:=Join(cnct, ";"), _ Destination:=.Range("A1")) .CommandText = "SELECT * FROM " & Mid$(x, p + 1) .AdjustColumnWidth = False .Refresh BackgroundQuery:=False .Delete End With End With End Sub こんな感じです。 #余談で.. #http://okwave.jp/qa/q5972724.html?order=asc #この時は無駄な処理をしてしまってました..orz
- f272
- ベストアンサー率46% (8469/18132)
エクセルの外部データ読み込み機能を使うことくらいは操作者に期待できるのであれば, それと同等の複雑さの操作でうまくデータを取り込めるマクロを作ることも可能でしょう。 私は面倒なのでやりませんが...
補足
回答ありがとうございます。 ただ、前提がちょっと違ってました。 以下の通り、補足します。 csvをテキストで開くと、こんな感じになるということです。 --------------------------- name,jusho1,jusho2,jusho3,comment A,東京都,品川区●●,1-1,"あい うえ お" B,東京都,千代田区●●,2-1,"かき くけこ" C,東京都,港区●●,3-1,"さし す せそ" --------------------------- そのままエクセルで開くと、jusho3は日付になりますがcommentはきちんと1セルに収まります。 外部取り込みを行い、表示指定(文字列など)すると、jusho3はちゃんと取り込まれますが、comment内の改行のせいで別レコード扱いになってしまいます(ダブルクオート(”)はちゃんと入ってるのに。)