こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【Microsoft Excel】 .csv 以外のCSVファイルをExcelで開きたい!

.csv 以外のCSVファイルをExcelで開きたいのですがどうしたらよいでしょうか?

abcd.csvというExcelで問題なく開けるCSVファイルがあるとします。
これの拡張子を.xxx(又はその他、独自設定の拡張子)に変更して、Excelで開けるようにしようと思ったのです。

フォルダオプション>ファイルタイプ>新規(ボタン)」で「新しい拡張子の作成」ダイアログが開き、そこで

・ファイルの拡張子=.xxx
・関連付けられているファイル タイプ=Microsoft Excel CSV ファイル

と設定して、abcd.xxxをダブルクリックでExcelが起動&ファイルオープンするまではいったのです。(アイコンも.csvファイルといっしょになりました。)
しかし、

aaa,bbb
ccc,ddd

という内容のファイルが

セルA1=aaa,bbb
セルA2=ccc,ddd

となり、csvファイルとして認識してくれていないみたいなのです。
ちなみに、元の.csvの場合にはちゃんと

セルA1=aaa
セルB1=bbb
セルA2=ccc
セルB2=ddd

とExcelは表示してくれます。
どうにか上手い方法は無いものでしょうか!
よろしくお願いいたします。

投稿日時 - 2003-01-28 20:00:45

QNo.457826

困ってます

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

ANo.#8の訂正です。

-----(切り取り線)-----
copy "(フルパス)\(ファイル名).out" "C:\Windows\temp\*.CSV"
"C:\Program Files\Microsoft Office\Office\EXCEL.EXE" "C:\Windows\temp\(ファイル名).CSV"
-----(切り取り線)-----

 ファイル名が*.CSVじゃ開けませんでした。(^^ゞ

投稿日時 - 2003-01-29 10:04:19

ANo.8

 前の回答を送信した直後に思いつきました。

 .outとして出力されるファイル名は毎回決まっているのですよね?

 ならば・・・。

-----(切り取り線)-----
copy "(フルパス)\(ファイル名).out" "C:\Windows\temp\*.CSV"
"C:\Program Files\Microsoft Office\Office\EXCEL.EXE" "C:\Windows\temp\*.CSV"
-----(切り取り線)-----

 これを、OUTOPEN.BATのファイル名で保存。
 このバッチファイルを実行すると、.outファイルがC:\Windows\temp\*.CSVにコピーされ、そのあとExcelに読み込まれます。
 .outファイルの関連づけをOUTOPEN.BATに割り当てる。
 これで無事、.outファイルをダブルクリックすると、.outをリネームコピーした物が、Excelに読み込まれます。
(.outをリネームコピーした物は、一時ファイルと考え、あえてWindowsのテンポラリフォルダにコピーしていますが、もちろん、お好みのフォルダに書き換えても良いですよ。)

 駄目かな?(^^;

投稿日時 - 2003-01-29 10:02:22

ANo.7

 出力がいつも同じファイル名だと、先のバッチファイルは同名の.xxxと.CSVがあるとエラーが出ますから、リネームしながらコピーした方が良いかな?

-----(切り取り線)-----
copy "(フルパス)\*.out" "(フルパス)\*.CSV"
-----(切り取り線)-----

 フルパスで指定するフォルダは、違う場所でも構いませんが、同じ場所の方が混乱が少ないでしょう。
 .outと同名の.CSVがあると、DOSプロンプト内で上書きして良いかどうかの問合わせがあります。
 「Y」を入力すると、上書きされます。

 全く別の方法として、Windows Scripting HostのVBScriptを使って、.outのCSVデータを解釈し、Excelをリモートコントロールしてセルに分割した値を書き込んで行くなんて方法もありますね。
(CSVデータは非常に単純明快なデータ形式なので、VBSで解釈すると言っても簡単ですよ。)
 そのVBSを.outに関連づけしておけば、.outをダブルクリックするとExcelが起動し、.out内のデータがExcelのセルに自動的に入力されるなんて動きをさせる事も可能です。
 この方法だと、既に起動しているExcelのファイルを開くから開く時には無効になってしまいますが。

 ANo.#6の方法は、テキストとして読み込んでしまってから、セルに分割する方法ですね。
 Excel側で処理するつもりなら、良い方法のように思えます。
 もう一ひねりするなら、マクロが実行されると.outファイルを読み込んで、データ全体を範囲選択し、ANo.#6のマクロが実行されるようにすれば・・・。
 あるいは、Excelが起動される度に開こうとしているファイルの拡張子をチェックし、.outだった時のみ上と同様の動作をするなんて方法もありますね。

 コンピュータに思った通りの振る舞いをさせる事は、ある意味頓智合戦だと思います。
 もちろん、出来合いのソフトウエアの振る舞いが気に入らないから最初からプログラムを書いてしまうなんて人もいる訳ですが。
 Excelほどの大規模プログラムを一人で書き下ろせる訳も無く。
 ならば、手元にある物を上手に組み合わせて、実現するってのがエレガントな手法でしょう。
 そのためには、自分が思い描いた動作その物ができない/難しいのであれば、それに代替えする方法を組み合わせて、実現するってのもありです。
 既存の物の組み合わせでは、どうしても実現できない事や、できてもやろうとすると面倒な事もある訳で。
 ならば、それをどこまで妥協するか?なんてのも大事な事ですよ。

>では、これは「無理」という事で終了…
>いや、あと1日だけ待ってみます~

 焦らないで下さいね。
 人にもよりますけど、回答者としては、解決できたのか?解決したならどのような方法で解決したのか?なんてあたりまでできれば知りたいと思います。
 最終的にscc213さんがどのような方法で解決を見たのか?がわかるまで、この質問はオープンなままにして置き、解決の方法まで書き込んでくれると嬉しい。
 私はそう思います。
 同様の問題に悩む人が、過去のOKを検索して見つけ出した時に、解決の方法まで書かれていれば、それは非常に有益な情報となるでしょう。
 慌てて結論をだして質問を閉じたりせず、結論がでるまでそのままにしておいてくれた方が良いと・・・私はそう思います。
(開けっ放しにして置けば、他に頓智の効いた解決法を書き込んで下さる方もいるかも知れませんしね。)

 私は色々な手法のアウトラインを提示していますが、バッチファイル以外は具体的なものを書き込んでいません。
 それは、VBAでやるにしろ、VBSでやるにしろ・・・具体的な物を作り上げるにはそれなりに手間が掛かるから。
 scc213さんが具体的にこの方法でやってみようと言う決断をされるまでは、あまり手間の掛かる方法を考えるのが面倒と思ってます。
 逆に、scc213さんがこの方法で行こうと決断されれば、必要であればその方法を補足して行くような形で具体的な物を書き込む事もあるかも知れません。

 scc213さんが提示した課題自体は、頭の体操的に取り組むには手頃と思います。
 ただ、せっかちに質問を閉じられてしまうと、ここのシステム上苦労して作り出したVBAやVBSが宙に浮いてしまうのですよね。
 やってみようと思った人に空振りをさせないためにも、まだこの質問は閉じないでおいてくれると良いと思います。 

投稿日時 - 2003-01-29 09:44:29

ANo.6

色んなやり方が紹介されている。それらの方法は、すでにご存知のようですが、何を困って、手数がかかって、めん度くさくて、質問しているのか良く判らない。
txtを読みこませると、A列にカンマつき区切りで、読みこまれて、そこで困るなら、何度もあるなら、操作がいやなら、下記を実行する方法もある。#3のVBA版。コマンドボタンのイベントプロシージュアーに貼りつけると良い。
Sub Macro1()
d = Range("a1").CurrentRegion.End(xlDown).Row
Range(Cells(1, 1), Cells(d, 1)).TextToColumns _
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, Comma:=True
End Sub

投稿日時 - 2003-01-28 22:58:05

補足

2回目まで、どうもありがとうございます。
怒らせてしまったようで、どうもすみません…(><

ちなみにDOSコマンドの類やVBA系の事は知ってた訳ではありません。
.outをエクセルファイル、しかも.csvに関連付けが出来てアイコンもエクセルのCSVファイルアイコンになり、もう少しのところまで来ているような気がしていただけです。
そう、あたかもエクセルファイルの様に、自然にエクセルを知っている人だったら何も考えないでいいようにしたかっただけなのです。

みなさん、ほんと親切にありがとうございました。
もうちょっと…という気がしていただけに粘ってしまいました。
大変勉強になりました、ご迷惑をおかけしてしまいました、すいません。。


では、これは「無理」という事で終了…
いや、あと1日だけ待ってみます~

※これ以上被害者を出さないためにも、既出の答えに近い方法はご勘弁おねがいします。

投稿日時 - 2003-01-28 23:11:02

ANo.5

>使いたいソフトが.xxxという拡張子でCSVデータをはき出すのです…
>変更が出来ないのです…
>泣く泣くなんです~(><

 ならば・・・単純に、.xxxと言う拡張子を、.CSVに振り替えれば済むのでは?
 繰り返し処理しなければいけないなら、バッチファイルでも使いますか?

-----(切り取り線)-----
ren "(フルパス)\*.xxx" *.CSV
-----(切り取り線)-----
 切り取り線の内側の1行を切り取り、テキストエディタで(フルパス)の部分を、.xxxファイルが置いてあるフォルダまでのフルパスに置き換えて下さい。
(フルパス=C:\MyDocument\・・・のようにドライブレターから始まり、フォルダ名を「\」で区切って書き連ねた物。)
 編集が終わったら、拡張子を.batにし、適当なファイル名(例えば、RENXXX.batとか)で保存します。
 エクスプローラでバッチファイルをダブルクリックすると、(フルパス)で指定されたフォルダ内にある.xxxファイルの拡張子は、ファイル名はそのままに拡張子のみ.CSVに一括して書き換えられます。

 もちろん、Excel VBAで、File System Objectを使って拡張子の振り替えとか、他にも方法は色々ありますけど。
 単純に指定のフォルダ内の指定の拡張子を指定の拡張子に変更するだけなら、バッチファイルを使うのが一番お手軽かも。

投稿日時 - 2003-01-28 21:30:47

補足

2回も、すいません!ありがとうございます~

はき出すファイル名は毎回決まってて、何回も同じ事をするんです。
一応、自分の中ではファイルの拡張子の変更は最終手段として考えてはいるんです。
とにかく、目指しているのは拡張子を.xxxのままエクセルでCSVファイルとして認識させたいと思ってて、もうちょっと頑張ってみようかなと思っているのですが。。
達人のみなさんから見ても、この線では解決しなさそうな感じでしょうか?

ちなみに、問題のソフトはSimpleFormV3というやつで、拡張子を絶対.outとしてはき出します(><
拡張子を.csvとしては、はき出してくれそうにありません~

投稿日時 - 2003-01-28 22:14:13

ANo.4

>使いたいソフトが.xxxという拡張子でCSVデータをはき出すのです…

拡張子はDOSプロンプトで一括変換できますよ。

変更すべきファイルのあるディレクトリに移動して、
ren *.xxx *.csv
でOKです(xxxは変更前の拡張子)。

投稿日時 - 2003-01-28 20:57:18

補足

どうもありがとうございます~
リネームツールっていう手もありますよね(><

投稿日時 - 2003-01-28 22:05:10

ANo.3

メニューバーから、「データ」-「区切り位置」で、
[カンマやタブ・・・・・」にチェックを入れ、[次へ]で[カンマ]にチェックを入れればお望みのようになると思います。

投稿日時 - 2003-01-28 20:52:28

補足

どうもありがとうございます~
効果は微妙ですが~(><

投稿日時 - 2003-01-28 22:02:22

ANo.2

>変更が出来ないのです…
メモ帳で読みこめませんか。
読みこめれば、・CSVで「名前を付けて保存」が出来ませんか。やって見ましたか。

投稿日時 - 2003-01-28 20:45:30

補足

どうもありがとうございます~
読みこめますし、保存ももちろんできますよ(><

投稿日時 - 2003-01-28 21:59:01

ANo.1

 Excelは、開こうとするファイルの拡張子が.CSVであるとき、そのデータファイルがCSVファイルであると認識します。
 .CSV以外の拡張子に変更すると、ExcelはそれがCSVファイルであるとは認識しません。
 おそらく、プレーンなテキストファイルとして読み込んでいると思います。

 中身がCSV形式なのに、.CSV以外の拡張子を使用するメリットは無いと思いますが?

投稿日時 - 2003-01-28 20:20:03

補足

使いたいソフトが.xxxという拡張子でCSVデータをはき出すのです…
変更が出来ないのです…
泣く泣くなんです~(><

投稿日時 - 2003-01-28 20:29:26

あなたにオススメの質問