• 締切済み

EXCELからCSVファイルの出力方法について

EXCELについて質問です。 エクセルのシートに入力した内容をCSVファイルで出力したいです。 当方の希望としまして、いくつかあるシートの中で、希望のシートだけCSVファイルを出力し、出力する際は「CSVファイルを出力」のようなボタンをクリックすれば、CSVファイルが出力されるものです。 初心者ですので、できるだけ詳しく教えて頂きたいです。

みんなの回答

回答No.5

簡単に分かりやすくマクロの登録から実行までを下記に 記載したつもりですが、伝わらなかったら申し訳ありま せん。それでは Excelを立ち上げ、ツール→マクロ→VisualBasicEditorを クリックします。次に立ち上がったVisualBasicEditorの 挿入→標準モジュールを押すと、Module1(コード)が開く のでそこに下記のソースをコピペしてください。 Sub Macro1() Application.DisplayAlerts = False main_f = ActiveWindow.Caption out_pass = ActiveWorkbook.Path & "\" Out_name = ActiveSheet.Name Sheets(Out_name).Select Sheets(Out_name).Copy ActiveWorkbook.SaveAs Filename:= _ out_pass & Out_name & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False ActiveWindow.Close Application.DisplayAlerts = True End Sub コピペがおわりましたら、エクセルにもどり任意の ファイル名で保存してください。例として sheetout_csv.xlsとして保存します。保存先は どこでもかまいませんが、閉じずにそのままにして おいてください。 次に、061156さんがシート別にcsv出力したいファイルを Excelで開き、出力したいシートをクリックします。 次にツール→マクロ→マクロを押して表示されている sheetout_csv.xls!Macro1を「実行」ボタンを押して実行 します。これで任意のシートのCSVファイル出力は 完成です。出力先はシート別にcsv出力したいファイルと 同じ場所に「選択したシート名.csv」で出力されます。 ボタン押すと出力されるようにもできますが記載が複雑に なりそうなのでこれで^^; 以上です。

全文を見る
すると、全ての回答が全文表示されます。
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

#3 です。 すみません。Worksheet オブジェクトに SaveAs メソッドがあるのを すっかり忘れてました。#3 はもっと簡単に書けます。 ' // アクティブシートを CSV で保存2(標準モジュール) Sub CsvOutputSample2()    ' // Excel の CSV 出力機能を利用します     Dim vOutFile As Variant     ' // 保存ファイル名を問い合せて、バリアント型変数で受ける   vOutFile = Application.GetSaveAsFilename( _           FileFilter:="CSV 形式(*.csv),*.csv", _           InitialFileName:=ActiveSheet.Name)   ' // 変数の値がブール値(False) ならユーザーキャンセルなので終了   If VarType(vOutFile) = vbBoolean Then Exit Sub   ' // 保存実行   ActiveSheet.SaveAs Filename:=vOutFile, FileFormat:=xlCSV End Sub

061156
質問者

お礼

丁寧なご対応ありがとうございました。 勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。 全部わかりませんでは作成依頼と受け取られかねませんよ。 VBA を学びたいのですよね? 頑張ってください。 ご参考までに。 ' // アクティブシートを CSV で保存(標準モジュール) Sub CsvOutputSample()    ' // Excel の CSV 出力機能を利用します      Dim vOutFile As Variant   Dim shSrc  As Worksheet      ' // A) 保存ファイル名を問い合せて、バリアント型変数で受ける   vOutFile = Application.GetSaveAsFilename( _           FileFilter:="CSV 形式(*.csv),*.csv", _           InitialFileName:=ActiveSheet.Name)   ' // 変数の値がブール値(False) ならユーザーキャンセルなので終了   If VarType(vOutFile) = vbBoolean Then Exit Sub   ' // 現在アクティブなシートを覚えておく(後で確実にアクティブ化するため)   Set shSrc = ActiveSheet   ' // 画面の切り替わりをユーザーに見せない   Application.ScreenUpdating = False   ' // B) アクティブシートを「新しいブック」に複製する   shSrc.Copy   ' // B) により、複製先の「新しいブック」がアクティブに切り替わる   With ActiveWorkbook     ' // A) の名前で CSV 形式で保存し、閉じる     .SaveAs Filename:=vOutFile, FileFormat:=xlCSV     .Close SaveChanges:=False   End With   ' // 一応念のため、コピー元シートの親オブジェクト(ブック)からアクティブ化   shSrc.Parent.Activate   ' // シートアクティブ化   shSrc.Activate   ' // オブジェクト変数を空に(参照を破棄)する   Set shSrc = Nothing End Sub

061156
質問者

お礼

ご対応ありがとうございました。 これから、VBAを勉強して内容が理解できるように努力しようと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • maac777
  • ベストアンサー率50% (43/86)
回答No.2

CSVでの保存自体は「名前をつけて保存」で「ファイルの種類」をCSVにすればOK。 ボタンをクリックでこの動作を可能にするにはマクロを使います。 ツール→マクロ→新しいマクロの記録→上記CSVでの保存手順を実行→ツール→マクロ→記録終了 オートシェイプでボタンを設置→図を右クリックして「マクロの登録」→先ほど記録したマクロを登録→ 図を右クリックして「テキストの追加」で【CSVファイルを出力】と入力 のような感じです。 ただしこのままですとファイル名の変更が出来ず全て上書き保存となってしまいますし任意のシートの選択も出来ません。 ここから先はVBAで作りこむようになりますが初心者とのことですので 全て説明しようとすると本が1冊出来ちゃいそうです。 とりあえずは「名前をつけて保存」で、後はおいおい勉強してみては?

061156
質問者

補足

回答ありがとうございました。 私の質問の仕方が悪く意図したことが伝えられなかったのですが、 任意のシートを指定したディレクトリに保存したいため、VBAでCSVファイル出力をしたいです。 ですが、VBAのスキルがないため、どの場所に、どのようなソースを書けばよいかを詳しく教えて頂きたかったです。 可能でしょうか?

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

こんばんは。 保存の際にファイルの種類を「csv」に指定すればOKです。 これが一番手っ取り早いですよ。

061156
質問者

補足

回答ありがとうございました。 私の質問の仕方が悪く意図したことが伝えられなかったのですが、 任意のシートを指定したディレクトリに保存したいため、VBAでCSVファイル出力をしたいです。 ですが、VBAのスキルがないため、どの場所に、どのようなソースを書けばよいかを詳しく教えて頂きたかったです。 可能でしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELでCSVファイルの読込み

    VBA超初心者でとても困っています。 仕事でEXCELのVBAを使って 現在開いているシートの中に 1つのCSVファイルからデータを読み込むのですが CSVデータの2行目をEXCELのC2へ。 4~10行目までを、EXCELのB5~B14へ マクロを使い、ボタン一つで自動入力させたいのです・・・。 Line Input も、やり方が悪いのかうまくいきません。 ヒントとなるやり方があればぜひ教えてください。

  • エクセルのCSVファイルについて。

    こんにちは。 エクセルのCSVファイルの扱いで質問です。 数値を入力した際、 通常の.xlsファイルだと、セルから大きくはみ出した数字は、セルの幅を調節すれば、入力した通りに出力されますよね? 現在、CSVファイルを扱っているのですが、 入力値が「44444444444444400000」のように大きくはみ出した場合、 セルの中には「4.44444E+19」と出力されてしまいます。 あらかじめセルの幅を広くしても、結局、桁の多い数値を入力すると同じような結果になります。 どうすれば、入力した通りの数値を出力させることができるのでしょうか? よろしくお願い致します。

  • エクセルからCSVで「”、”」の形式のメモ帳で開けれるようにしたいのですが

    「Workbooksクラスの_Openメソッドが失敗しました」と、、出てできません。恐れ入りますが、どなたかご教授願います。 やった手順は 1.エクセルシート(IDや00を含まないシンプルな名簿)を準備 2.CSVを起動させて入力ファイルには、1のエクセルシート指定して  「~~~.xls」または「~~~.csv」でボタンを押して、 3.出力ファイルでは、同じエクセルシートを指定して「~~~.csv」   だけにしてボタンを押したら 上のような失敗ですと2回ともなって、全く困っています・・・ 助けてください、どうかよろしくお願いします。

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • エクセルからCSVファイルに出力したい?

    エクセルのシートからマクロを使ってCSVファイルに出力したいです。 そこで調べたのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2376607 こちらの質問で以下のようなコードが参考になりました。 Sub Macro1() Dim myBook As String myBook = ActiveWorkbook.FullName myBook = Left(myBook, Len(myBook) - 3) & "CSV" ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=myBook, FileFormat:=xlCSV ActiveWindow.Close False End Sub このコードではCSVのファイル名がエクセルシートのファイル名になってしまいます。 今回の質問ですが、CSVファイルを違う名前で保存するにはどのようにすればいいのでしょうか? (CSVファイルの名前は常にabc.csvで保存するものとします)

  • エクセルの任意のシートをcsv出力するVBScript

    c:\a01.xls という名前のエクセルファイルがあり、sheet1、sheet2、sheet3 というシートの構成とします。それぞれのシートには何件かの入力があるとします。 この エクセルファイルから Sheet2 の シートのデータを c:\csv01.csv にCSV出力するには どのような test.vbs を作成したらよいのでしょうか? 教えてください。

  • VBAを利用したCSV出力

    現在エクセル2003のVBAを使用して、シートの内容をcsvファイルに出力するマクロを作成しています。 Sheet1にこのマクロを動作させるボタンがあり、Sheet2の内容を出力したいと考えています。 しかし、ネットで探したところ、ほとんどのものが、Sheet1も内容を出力するマクロで、Sheet2の内容の出力の仕方がわかりません。 どなたかマクロの書き方、もしくはサンプルコードのあるサイトなどご存知の方がいらっしゃったっら教えていただけないでしょうか?

  • CSVファイルをエクセルファイルにインポートさせるには?

    おせわになります CSVファイルをエクセルファイルにインポートさせたいのですが 方法は ユーザーフォームをにテキストボックスと参照ボタン、実行ボタンを作成し 参照ぼたんでCSVファイルを選ぶ テキストボックスには参照先の住所が記載され 実行ボタンでsheet1にB2から貼り付けさせたいのですが可能ですか? 又、CSVの情報が不要な列もあります 必要な列のみ落とし込みをしたいです 当方初心者でVBAコードがあれば幸いです。 わかる方よろしくおねがいします

  • Excelで、任意のCSVファイルを…

    Excelで、任意のCSVファイルを、特定のシートに丸々貼り付ける、というような事をボタンひとつで処理したいのですが、初心者なものでこまっています。 教えてください。

  • CSV出力に関して

    パソコンで「CSV出力が完了しました」と表示が出ているのに、データがどこにも反映されていません。 CSV出力した内容を、Excelのシートに移したいのですが、どのような手順で行えば良いのでしょうか?

専門家に質問してみよう