- 締切済み
CSVファイルをエクセルに取込むには
VisualBasicで作成したCSVファイルをエクセルに取込み、ファイルの値を表示したいと考えています。 このとき、エクセルには既に枠(?表といった方がいいでしょうか?)が表示されており、CSVファイルのこの値は、表のこのカラムに表示すると言ったことがしたいのですが、どんな風に進めたら良いのか、全然イメージ出来ません。 こんな項目で調べたら?とか、こんな風に進めたら?とか、何かアドバイスをお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
VBAですが、こんなのが役にたちますでしょうか。 3列のデータを仮定してます。 Sub test01() Open "c:\My Documents\aaa.csv" For Input As #1 i = 1 While EOF(1) = False Line Input #1, a c = Split(a, ",") Cells(i, "A") = c(0) Cells(i, "B") = c(1) Cells(i, "C") = c(2) i = i + 1 Wend Close #1 End Sub ---- または Sub test02() Open "c:\My Documents\aaa.csv" For Input As #1 i = 1 While EOF(1) = False Input #1, a, b, c Cells(i, "A") = a Cells(i, "B") = b Cells(i, "C") = c i = i + 1 Wend Close #1 End Sub でも良さそう。 ただVBの中からVBAを呼び出すことはできると思うので、勉強してください。
- MovingWalk
- ベストアンサー率43% (2233/5098)
CSVの取込み自体は、通常、CSVファイルがExcelに関連付けされていますので CSVファイルをダブルクリックすれば開けます。 罫線等はデータのある行の数に応じてマウスで指定して引く方が早いと思います。 列の幅を文字数に合わせて調整するには、左上の角をクリックしてシート 全体を指定(反転)させてから、AとBの境界線あたりをダブルクリックすると 全体が自動で調整されます。 やりたいことはもっと違うことなんでしょうか?
補足
EXCELには既に枠組みを作っておきたいのです。 (月毎に出力する何かの集計表のようなイメージを持っていただければ、多分私と共通のイメージが出来るのでは。と考えるのは、一方的ですかね…) すごくざっくりした例を挙げると、下記のようになります。 ----------------------------------------- 着信総数|内訳a |内訳b |比率b/a 600 |400 |200 |50% 電話 |メール|×××|○○○ 200 |200 |100 |100 ----------------------------------------- ここで、「着信総数」「内訳a」「内訳b」「比率b/a」や「電話」「メール」「×××」「○○○」は、固定項目で、データを取り込まないうちから表示させておくものです。 数値の部分がCSVから読み込みたい値になります。 ただし、「50%」は、EXCEL上で自動的に計算させたいです。 こういったことがしたいのですが、どうでしょうか? イメージ、伝わったでしょうか?
- S-Fuji
- ベストアンサー率36% (592/1624)
CSVファイルですから、カンマ(、)で区切られたデータは、Excelの各セルに自動的に入ります。 単純にカンマで区切ったデータは横並びに、CRLF(Enter)で区切られれば、縦並びに入ってきます。 読み込む時には、ファイルの種類をテキストファイル(*.rpn、*.txt、*.csv)を選択しましょう。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 Excel2000で回答します。 メニューの[データ]→[外部データの取り込み]→[テキストファイルのインポート]でウィザードを起動させると、最後に取り込む場所を指定出来ます。 また、VBが出来るのでしたら、ExcelVBAも扱えると思いますので、VBAでOpenステートメントでファイルを読み込めば、いろいろ応用がききます。
お礼
結局、一旦マクロを記録してから、他にやりたい処理をVBAで行うことにしました。 ありがとうございました。
お礼
~回答者の皆様~ 結局、CSVからの読み込みはマクロを使って。 集計シートの作成は、各カラムに条件を入力しておくという方法にしました。 色々ありがとうございました。 参考になりました!