• ベストアンサー

CSVでファイルを出す方法

ecogilisの回答

  • ecogilis
  • ベストアンサー率60% (12/20)
回答No.1

vbaでということでしたら、VBAにはファイル操作関連のステートメントが用意されていますのでそれを利用したらどうでしょうか。 その場合には、大体、Openステートメントでファイルを開いて、Printステートメントなどでファイル書き出しを行い、Closeでファイルを閉じるという流れになります。 Excel付属のVBAのヘルプを見るとステートメントや関数という形で、基本機能が書かれています。

関連するQ&A

  • Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換さ

    Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換されて困っています。 すごく困っております。どなたか教えて下さい。 状況を申し上げますと、以下のようなCSVデータがあります。 "住所1","住所2" "東京都港区青山","1-24-11" このとき、別なCSVにデータを移すという単純なものです。 通常は、 WsCount.Cells(1, 1).Value =Cells(2,1).value WsCount.Cells(1, 2).Value =Cells(2,2).value で、セルにある文字をそのまま、新しいシートのセルに移すだけのことですが、 何故か、"1-24-11"が日付に変換され、"2011/1/24"に変わってしまいます。 デバックなどで、途中経過を見ても既に日付にかわっており、 どうにも対応ができません。 以前は""で囲んである文字は、文字のまま認識していたと思いますが、 何故か今回はうまくいきません。 ちなみに、Excel2007です。 どなたか、教えて下さい。 宜しくお願いします。

  • エクセルのVBAでFor文がわかりません。

    エクセルのVBAで 12列目のセルで縦に93行あるデータ(数字)を利用し、 まずCells(1,12)のデータを18列目のセルの28~36に貼り付け 次はCells(2,12)のデータを18列目のセルの28+48~36+48に貼り付け その次はCells(3,12)のデータを18列目のセルの28+48*2~36+48*2に貼り付け ・ ・ ・ 最後はCells(93,12)のデータを18列目のセルの28+48*92~36+48*92に貼り付け という具合にFor文を作りたいのですがわかりません。 For文を二つ用いて関数二つあれば出来そうなのですが・・・。 ご教授お願いいたします。

  • csvのデーターファイルから任意の行をエクセルファイルへ入力するエクセ

    csvのデーターファイルから任意の行をエクセルファイルへ入力するエクセルVBA が上手くできません。 6列2000行のcsvデーターのテキストファイルの作成は、色々な参考書があり成功しました。次に このcsvのデーターファイルから任意の複数行をシート4などの任意のワークシートの任意の場所に60行程度をインポートして、この60行の数値データーを加工しようとしていますが、入力が上手くできません。数値データーの加工のプログラムは一応できているため、その様式にあわせて、所定の場所にデーターを入れる必要が有ります。 1列目には日付(シリアルの数値にしています)、その他はすべて数値(LONG型)です。エクセルは2003を使用しています。 VBAの初心者です。宜しくお願いいたします。

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • exelのbookまたがりでセルをコピー貼付けたい

    エクセル2010のvbaで質問です。 シンプルなデータ表から、印刷向きレイアウトにした別BOOKにセル内容を 送りたいのですが、うまくいきません。 開いてあるbookまたがりでセル値のコピーをします。送り側は連結セルです。 行、列を可変として順次ループで回すので、RANGEでなくCELLS(行、列)の指定で行いますが、 実行時エラーが出ます。(インデックスが有効範囲にありません) Sheets(OUTSHEET).Cells(行,列).Value = Sheets(INSHEET).Cells(行,列).Value ↑現在この書き方でエラーになります。うまくいく方法はないのでしょうか。 なお、手動でコピーして、送り側セルでエンター押すとできます。 でもそのマクロ記録ではセル番地指定なので、自動化にできません。 詳しい方、よろしくお願いします。

  • CSVについて教えてください

    ワードで作ったデータ(下記のようなもの)を、エクセルにCSV形式で取りこむ時に セルの場所を指定をすることは可能なのでしょうか? 例えば) 生徒名 名前:あいうえお 名前:かきくけこ 名前:さしすせそ ・ ・ ・ 学部 学科 学生番号 というWordファイルがあるとします。 ・「生徒名」は (2列め1行目のセル) ・「名前:あいうえお  名前:かきくけこ  名前:さしすせそ」は(3列め5行めのセルから) ・「学部」は(5列め1行め) ・「学科」は(6列め1行め) ・「学生番号」は(7列め2行め) といった感じで、それぞれ指定したセルに自動的にはいる方法があれば うれしいのですが・・。 何か最初に設定などをしたら出来るのでしょうか? かなり困っています。 よろしくお願いしますっ!!

  • CSVデータから日付を正確に読み込めません

    ユーザーフォームのテキストボックスでCSVファイルを指定し、レポート用のBookに貼付けしようとするのですが、 以下のように日付がおかしくなってしまいます。 ご教授願えませんでしょうか? CSVデータ       Xlsデータ 日付(A列)      日付(A列) 2008/4/1        2001/8/4 2008/4/2        2002/8/4 2008/4/3    ⇒   2003/8/4 2008/4/4        2004/8/4 2008/4/5        2005/8/4 (B列からQ列までは数値データとなっております。) 現在、入力しているVBAは下記のような記述です。 ' "CSVデータ"をExcelで開く Workbooks.OpenText TextBox2.Value, Local:=True Cells.Select Selection.Copy Windows("Report.xls").Activate Sheets("元データ").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Windows(2).Activate ActiveWindow.Close SaveChanges:=False

  • CSVファイルの取り込みについて

    CSV取り込み方法について 教えていただきたくお願いいたします。 エクセルのマクロ・VBAの組み方について デスクトップ上の000という名前のCSVファイルを、作業しているエクセルファイルのLoadという名前のシートに貼り付けたいと思っています。 CSVファイルはエクセルで開くと1行に11列の項目が展開されています。 貼り付ける項目はこのようになります。 (CSV) →(エクセルのLoadシート) 1列目(A行)→B行へ 2列目   →C行へ 3列目   →D行へ 4列目   →E行へ 5列目   →F行へ 9列目   →G行へ 10列目  →H行へ 11列目  →I行へ (6.7.8列目は使いません) 最後にLoadのシートのA行に”=B&E”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。

  • VB2010でCSVファイルを読み、配列に入れる

    ExcelVBAで、フォルダを選択しCSVファイルを表示⇒クリックで対象ファイルを選び配列に入れる次のプログラムを作りました。その後でデータを加工しグラフィック化してるのですが、VBAのグラフィック機能が遅いのでVB2010に変えようと思いいろいろやってみたのですが、どうもうまくいきません。 どなたか、VB2010ではどのようなプログラムになるのか、教えていただけないでしょうか。 'Excel VBA---------------------------------------- Sub CSVデータ() Dim xd(1000),yd(1000) 'フォルダを選ぶ ChDir ThisWorkbook.Path 'CSVファイルの一覧 pname = _ Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv" _ , FilterIndex:=1,Title:="開く",MultiSelect:=False) '対象ファイルをクリックで選ぶ If pname <> False Then Workbooks.Open Filename:=pname End If fname = ActiveWorkbook.Name 'CsVファイルのセルから配列へ移す nstart = 6 nend = nstart +500 k = 0 For i = nstart To nend '6行目から500行の2列、3列を読み配列に入れる k = k + 1 xd(k) = Cells(i, 2) yd(k) = Cells(i, 3) Next i End Sub

  • CSVファイルの行と列のセルってどうやって指定するのですか?

    たとえば、1行目の2列目のセルの値を消したい。 2行目の5列目のセルの値に数字の5をいれたい。 って場合、行だったら $FILE=data.csv; open(IN, $FILE); @data=<IN>; close(IN); このときの $data[2]は3行目ですよね? では3行目の3列目はどうやって指定するのでしょうか?たとえば3行目の3列目のセルの数字の5だったのをperlを実行したらセルの中を6に書き換えるのはどうしたらいいのでしょうか?

    • ベストアンサー
    • Perl