- ベストアンサー
【Excel VBA】セルの値を新規xls(またはcsv)ファイルに出力したい
お世話になります。 あるブックのあるシート内のデータを、別の新規Bookに自動出力したいのですが。 A.Book(元データ) セル A1:A200 B1:B200 ↓ 指定した名前でCドライブ直下に出力(常に上書き) この動作をA Bookのシートにボタンを作成し、 それをクリックすることで起動させたいです。 参考になるソースを教えていただけないでしょうか? (当方、初心者です) ※質問内容に不明点があればご指摘ください、補足欄にて対応させていただきます
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Dim buf As Variant buf = ActiveSheet.Range("a1:b200") Sheets.Add after:=Worksheets(Worksheets.Count) Application.DisplayAlerts = False With Worksheets(Worksheets.Count) .Name = "copy" .Range("a1:b200") = buf .Move End With With Workbooks(Workbooks.Count) .SaveAs "C:\test.xls" .Close End With Application.DisplayAlerts = True
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
#3です。 >どこから動作させたのか 普通にやりました。セル範囲をコピーしておいて、 ファイルー新規作成ー空白のブック 貼り付け 名前をつけて保存 をしました。(E2002) >メニューに"エクスポート 私の語感では (1)受け・渡しのソフトが違う(エクセルとアクセスとか) (2)両者標準のファイル形式が違う(xlsとmdbとか) CSVなどを通じての場合はおなじでも使うかな。 そういう際に、ファイルを取り込む方法を提供している場合に使う。 (3)俗語・普通名詞的にデータを「移す」という意味で使う 場合も見かける。 それで今回はエクセル間ですから使わない。
お礼
非常に参考になりました。 ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルがおしえてくれるのではないですか。 マクロの記録をとりました。 Sub Macro1() Workbooks.Add Windows("Book1").Activate Range("A1:B10").Select Selection.Copy Windows("Book2").Activate ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\XXXX\My Documents\Book2.xls", FileFormat:=xlNormal _ , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub となりました。 関係箇所を変更して、コマンドボタンクリックイベントで上記コードを囲えば済むのではないですか。
補足
私も最初はマクロ記録で対応しようと思ったのですが、 メニューに"エクスポート"のようなものがなかったのでできませんでした。 どこから動作させたのか、参考までに教えていただけますか?
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
あなたのやりたい機能は、全て過去の質問履歴に書かれているサンプルを組み合わせることで、実現可能だと思います。 ただ初心者であれば、その検索キーワードがわからないかも知れませんので、そのキーワードだけ エクセルを操作 「excel.application」 エクセルの保存 「saveas」 CSVっていうか、テキストファイルの関連 http://okwave.jp/kotaeru.php3?q=2100690 ↑最近アドバイスしたけど、そのまま放置されているスレッド 「初心者だからわからない⇒丸投げの質問」 ではいつまでも初心者です。 あなたのやりたいことは ・エクセルを開く ・新規ブックの追加 ・シートへの値の反映 ・ブックの保存 ・あるいはテキストファイルの読み書き といった「複合の機能」です。 的を絞った質問をすることも、これまた「スキル」です。 がんばってください。
お礼
おっしゃる通り、今の私では初心者から脱皮できませんよね……。 (おそらく(汗;)→自在に操れる言語(もう流行らない古いもの)とはあまりにも違うので、キーワードを見出せなかったのも事実です。 時間がなかったというのもありますが、過去ログをきちんと確認しなかったのも当サイトではマナー違反でしたね……。 精進してまいります。
お礼
お礼が遅くなりまして申し訳ありません。 できました! まさに希望通りの動作でした!