• 締切済み

フィルター可視データのCSV出力について

いつも助けてもらっています。 EXCELのVBAにて、 タイトル等の不要な行を削除した上で、 データが入っている行全てをCSVファイルに出力する マクロを作って使っています。 全件をそのままCSVファイルに出力するのは問題ないのですが、 オートフィルター(手操作)にてヒットしたデータのみを CSVファイルに出力したいです。 ネットでいろいろと調べると、 可視データを他のシートにコピーして・・・やる、 というやり方しか見つかりませんが、 他のシートにコピーしないで行う方法はないですか? (マクロで実行する場合です) もし可能であるならば・・・ コードの記述でなくても、 こんなやり方・・・とか、 どこか参考になる情報でもリンクしてもらえると 助かります。 よろしくお願い致します。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

少々昔の回答ですが... http://okwave.jp/qa/q4134222.html vbTabを、","に替えればCSVに書き出せると思います。 なお、 area.Cells(i, j).Text を用いると、通常のCSV同様、画面に表示された桁数で出力され、 area.Cells(i, j).Value にすると、セルに入っている桁数全てが出力されたと記憶してます。 シート名をファイル名にするには、 Call saveToText(extractedRange, ThisWorkbook.Path & "\" & "test.txt") の"test.txt"を、Activesheet.Nameにすれば良いでしょう。 ご参考まで。

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

>他のシートにコピーしないで行う方法はないですか? エクセルのフィルタはシートの行を非表示にするだけ(復活が必要だからだろう)だが、可視セルを選択する方法があり、他シートに貼り付ければ、CSVで保存するのもたやすいとおもう。なぜ質問者が、他の方法が良くわからないのに、他シートにコピーをすることを避けるのか。質問者のわがままで、自分にその力が無ければ、自分のできる範囲でやるのが当たり前だと思うが。 ーー ただ上記以上にプログラム力が要ると思うが、条件による行選択を、エクセルのフィルタを使わず、自作することをすれば、検索結果とか抜き出した都度、CSVファイルに書き出すことは出来ると思う。 レコード処理的にテキストやCSVファイルを書き出すコード作成の経験はあるのですか。 Googleで「エクセル CSV VBA」で照会すれば、まずはじめに出てきた、 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html などに、使えるコードがでている。こんな照会することもしないで質問するのは、要領を知らない。 ーー その際全行処理のくり返しの各行において、IFステートメントで条件をかければよい。 このほうほうは決してスマートな方法ではないが、ッそれ以上の方法を考えるのはもっとFindメソッドのことなど勉強してからだ。 == 上記の本筋とは別に、下記は何とかできそうだが、際どい。 フィルタ実行後のシートデータに対し Sub test03() Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible).Select For Each cl In Selection If cl.Column = 1 And Not cl.Row = 1 Then MsgBox Left(s, Len(s)-1) '実際はこのsをテキストファイル書き出しする s = "" End If s = s & cl & "," Next MsgBox Left(s, Len(s-1)) End Sub

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

こんばんは。 マクロでやるなら、他のシートにコピーしても 処理後にそのシートを削除することもできます。 だから何が問題なのかと思ってしまいます。

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

関連するQ&A

  • エクセルのオートフィルターで可視セルのコピペ

    オートフィルターで選択表示されている可視セルをコピーして、他の列にペーストしたところ、行がずれてペーストされてしまいました。 たとえば、B14にあるデータをコピーして そのままD14にコピーしたいのですが、どのようにすれば可能でしょうか? オフィス2003の環境です。

  • Excelシートを分割してcsvに出力するVBA

    すいませんが、ご教示願います。 パソコンExcelのVBAです。 Excelファイルシートの24,000行あるデータを、 任意に選択した範囲(例えば2行目から3,000行目)をcsvデータに出力する VBA構文が知りたいです。 どなたかおわかりになりますでしょうか。

  • オートフィルタかピボットテーブルで可視セルのみコピー

    オートフィルタかピボットテーブルで可視セルのみコピー Excel2007を使っています。以前、オートフィルタかピボットテーブルで集計したデータを別シートにコピーしようとしたら、可視セルのみでなく元データがコピペされてしまった気がします。 でも、久しぶりに思い出して、ジャンプ→可視セルのみ選択→コピぺでできると思ったのですが、そんなことをしなくてもふつうのコピペだけで可視セルのみコピーになりました。 Excel2003から2007に変わったときに、そのように仕様が変わったということでしょうか。 でも、以前、コピペして元データになってしまったのも、Excel2007の時だった気がするのですが。

  • VBAを利用したCSV出力

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

  • VBA フィルターで抽出したデータを別のファイルの

    VBA フィルターで抽出したデータを別のファイルのシートのセルにヘッダー行とフッター行のあるシートに挿入したい お世話になります。 excel のフィルターで抽出したデータを別のファイルのシートに抽出したデータと同一フォーマットの入っている原紙がありその原紙をコピーしたシートのヘッダー行(A1-A8)の後、9行目からフッター行の手前、52行めまでに貼り付けするを、フィルターで抽出した分繰り返したいのです。原紙 のシートはコピペでしたに20枚ほど作ってあります。 マクロの記述でコピペを繰り返せば作れそうな気はしますが、汎用性が無いので、また私の頭も固いので。 宜しくお願いします。

  • 可視セルのみで平均を計算

    Sheet1にある表をオートフィルタで抽出し、その可視セルの三列目にある値の平均値をSheet2のあるセルに出力するマクロを作りたいのですが、どうすればいいでしょうか? ↓これがキー 番号     名前      値 027***  あそこ     12 027***  こちら     0 027***  どちら     5   ・    ・       ・   ・    ・       ・   ・    ・       ・ 右の値の平均値をSheet2に出力

  • エクセルでのオートフィルタに関して(マクロ)

    1行目にタイトルがある表がありましてその表に オートフィルタを掛けて条件を複数指定して検索・・・ここまで手作業。 その後マクロでヒットした行をコピーして別のシートにコピーしたり、ということを行っています。 もともとの表のデータ数は日々増減していて ほしい行の行数も毎回変わってきます。 検索した行をコピーするために選択すると Rows("2809:2809").Select こんな具合に 行番号で指定されるのでデータ数が増減すると うまくいきません。 検索条件を指定して検索した行を うまくマクロで指定することは出来るのでしょうか? 良い方法がありましたら御教授願います。 もう一点ですが 自動記録でオートフィルタの画面を開いたままでは「記録終了」できないですよね? マクロでフィルタ画面を開いて 検索条件を指定するところから手作業でするのは可能でしょうか? あわせてよろしくお願いします。

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

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

  • VBAマクロでCSV出力

    はじめまして、よろしくお願いします。 ExcelのVBAマクロで 特定のセルの範囲を「シート名.csv」で出力するようなプログラムを書きたいです。 例)シート名「TEST」内にあるマクロボタンを押すと  A1:A10のセルの内容が「TEST.csv」(アスキー形式ならなんでも)  に出力される。 どういうやり方があるか、お勧めのサイト等、 ご教授いただけないでしょうか? 以上、よろしくお願いいたします。

  • 複数のExcelブックの可視セルを統合VBA

    いつもお世話になっております。 複数のExcelブックの可視セルのみを、別のブックの1つのシートに統合することはできるのでしょうか? やりたいことは、始めに複数人に同一ファイルを配布し、1つのフォルダにそれを纏め、各担当者ごとでフィルタを掛けた部分(可視セル)だけを1つのブックの2シート目(1シート目はAccessにリンクさせています)に纏めたいと思っております。 ファイルは、1行目に集計・2行目に各項目があり、必要データは3行目からです。 VBA初心者の為、どなたかおわかりになる方いらっしゃいますでしょうか? 宜しくお願いいたします。