• ベストアンサー

特定のエクセルファイルをcvsで保存するスクリプト

毎月決まった作業があり、バッチ処理したいので教えてください。 2007.xlsファイルの○○Sheetを△△フォルダに△△.cvs保存したいと 思います。 たった、これだけなのですが、VBScriptでバッチ処理するスクリプトを 教えてください。 ショットカットをクリックするだけでこれが自動化できると 作業がシンプルになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

ツールーマクロー新しいマクロの記録 ファイルー名前をつけて保存ー(csvという拡張子をつけて)CSVファイル名を指定 下記のようになる Sub Macro1() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\xxx\My Documents\test9.csv", FileFormat:=xlCSV, _ CreateBackup:=False End Sub (1)ActiveWorkbookに当たる、指定のファイル名を任意に指定 する方法 そしてWorkbooks.Open "ファイル名" http://www.moug.net/tech/exvba/0060049.htm など Web照会「workbooks.open 」 (2)上記コードの:\Documents and Settings\xxx\My Documents\test9.の部分の任意指定 WEB照会「SaveAs] (3)1シートしかCSVファイル化できない対処 (4)>ショットカットをクリックするだけでこれが自動化できると ショットカットを入力するだけで起動できる、やり方 ー>マクロの記録のダイアロウグで設定。 (1)(2)はx=InputBox("ファイル名")で当面済ましたら。 ーー 実行したら、アウトプットされたファイルにつき、メモ帳で読み込んで確認できます。

Scotty_99
質問者

お礼

回答ありがとうございました。 まだ試していないのですが、たぶんこれで 解決できたと思います。

関連するQ&A

  • バッチ処理での保存

    「バッチ未処理」「バッチ済み」の二つのフォルダを作り、「バッチ未処理」の中のファイルを、バッチ処理で解像度を落として「バッチ済み」フォルダに保存したいと思い、以下のような作業をしました。 1.アクションの記録ボタンを押してアクション名「解像度350」を設定 2.「1.pdf」を開く 3.解像度を600から350に落とす 4.保存を押して上書き保存 5.閉じる 6.アクションの記録終了 7.自動処理→バッチ 8.解像度350を選ぶ 9.ソース: で「バッチ未処理」を選んで、サブフォルダをすべて含めるにチェック (PDFファイルはサブフォルダ内にあるため) 10.実行後: で「フォルダに保存」を選び「バッチ済み」を選択 11.エラー発生時に中止を選択しOK やってみたのですが、同じファイル(01.pdf)が何回も開いてしまい、保存ダイアログがいちいち出てしまいます。 自動ですべて開いて、自動で保存したいのですが、そういう事はできないのでしょうか? 処理するファイルは300ぐらいあって、それぞれフォルダ別に別れています。 (説明不足のときはすぐに補足するのでおっしゃってください。)

  • 開いてるファイル(エクセル等)をバッチかVBScript自動的に保存す

    開いてるファイル(エクセル等)をバッチかVBScript自動的に保存する方法は? 幾つかのアプリを終了させ、その際エクセルを終了するときに、 開いているエクセルファイルを全部自動的に保存させて終了させたいと思います。 バッチでは保存のコマンドは無いようで、VBSで終わらせ方は分かったのですが、その前の保存がわかりません。ちなみにBookのタイトルはそのときにより変わります。あと今回はエクセルのマクロはつかいたくないので、VBSで使えるのでお願いします。

  • エクセルファイルの一括変換処理【マクロ?】

    こんにちは。 複数のエクセルファイルに、同じ処理を一括で行う方法について質問いたします。 現在フォルダの中に、県別に分かれた47個のエクセルファイルがございます。 --イメージ-------------------   北海道.xls   東京.xls   愛知.xls   大阪.xls    :   沖縄.xls ---------------------------- これらを使いやすくするために、現在以下の処理を行っています。 1)ファイル名を同じ法則性をもって変更する  (例:北海道.xls→「北海道3月実績」/沖縄.xls→「沖縄3月実績」) 2)同じ書式に変更する  (例:「北海道3月実績」の書式(罫線・列幅・フォント等の設定)をコピーし、     他の47ファイルを開き、『書式の貼り付け』で47回ペースト) 3)同じマクロを実行する  (例:エクセルファイルを開き、既存マクロ(改ページを自動挿入するマクロ)を     実行する作業を47回行う) 上記の単純作業を毎月毎月、47回行わなくてはなりません・・・。 簡単な作業ではありますが、時間がかかりますし、やっていく中でミスも発生いたします。 1つの同じフォルダに格納されたファイルに全く同じ作業をしていくので マクロか何かで自動化できないものか、と思案中です。 ■自動化がそもそも可能なのか? ■可能であればどうやったらできるのか? アイデアや知識をお持ちの方がいらっしゃいましたら 教えていただければ大変うれしく思います。 どうぞよろしくお願いいたします!!

  • エクセル マクロを保存させる場所について

    最近マクロの基本中の基本を勉強し始めた者です。 あるフォルダの中にある100個近くあるエクセルのファイルすべてに同じような作業をしたいので 100個あるファイルの内の1個を使ってマクロを組みました。 その際、マクロの保存先は「PERSONAL.XLS」を選びました。 残りの99個のファイルは、組んだマクロを使って簡単に作業を終わらせることができたのですが それ以来、全く無関係なエクセルを起動させても 「PERSONAL.XLS」というシートが立ち上がってきてしまうようになってしまいました。 保存先を「PERSONAL.XLS」にしたのがやはり原因なのでしょうか? もしそうなら、保存先は「開いているすべてのブック」「作業中のブック」どちらに変更すればよいでしょうか? 長文で失礼いたしました。

  • エクセルでパスを含んだファイル名

    エクセルのヘッダー・フッター編集で ワードのように"パスを含んだファイル名"(またはシート名)を 自動?で挿入することはできるでしょうか。 例えば、Cドライブの「あ」と言うフォルダーに保存してある テスト.xlsの「い」と言うシート名をヘッダーに挿入したい 場合、 C:\あ\テスト.xls\い と言うようにです。 ご教授をお願いいたします。

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • Excelのファイルからシート毎にファイルを作成する方法

    複数のシートで構成されているひとつのExcelファイルからシートごとに分割してファイルを作成(保存したいです) 具体的には、 ファイル名 file.xls  含まれているシート Sheet1 Sheet2 Sheet3 このfile.xlsから自動でSheet1.xls Sheet2.xls Sheet3.xlsという ファイルを作成してそれぞれのシートだけを保存する方法があれば教えてください。 標準の機能でなければ、フリーソフトなど別のソフトを使った方法でもかまいません。

  • エクセルで新たなファイルを開くマクロ

    【質問:1】 ○○○.xlsというファイル上で、 ボタンを押すと、 ×××.xlsというファイルを ”マクロを有効にする”で開いて、 (どちらもマイドキュメントに保存してあります) かつ、 ○○○からの自動リンクを反映させ更新し、 (通常ですとダイヤルログボックスがでますよね) ×××のシート1のA1セルをアクティブにする というマクロはどのように書けばいいでしょうか? 【質問:2】 ×××.xlsにおいて、 ボタンを押すと、 ×××を”保存せずに閉じ”て、 かつ○○○.xls(既に開いてあります)の シート1のA1セルをアクティブにする というマクロはどのようにかけばいいでしょうか?  よろしくご教示のほどお願い致します。

  • エクセルVBAでファイルを別で保存する

    ファイルA1,A2,・・・A9,b1,b2・・・と百個くらいファイルがあって、 それを別フォルダにひらがなでわかりやすい名前をつけて保存したいです A1は商品○○、A2は商品▲▲、・・・というような感じです。 月初にこの作業を行っています。 いつもa1~全部そろっているわけではなくA2がなかったり、B5がなかったりいろいろです。 毎月の作業で面倒なので自動化したいのですが どのようにしたらいいのでしょうか? 1個1個ファイルを開いて、名前をつけて保存する、という作業で組んでみましたが ファイルがないところでエラーになってしまいました。 また、1個1個ファイルを開いて、保存、という作業を100回位繰り返して書いてみたんですが もっとスマートな書き方はあるんでしょうか? よろしくお願いいたします。

  • エクセル:バックアップファイルの保存先に毎月、フォルダを自動で作りたいのです

    エクセル、VBA初心者です。よろしくお願いします。 以前に、ネットワーク先の自動保存の保存先を次のようにこちらでご指導いただきました。 ('保存先パス名  NetPath = "\\○○\□□\△△\  BkName = ThisWorkbook.Sheets("sheet1").Range("A1").Text & _ Format(Now(), "yyyymmddhhmm") & ".xls") で、おかげさまでネットワークの任意の保存先にエクセル「sheet1」の「A1」に入れた文字+年月日時間を加えたファイル名で、うまくバックアップとれています。 ◆今回は、その保存先フォルダ\△△の中にさらに自動でフォルダをつくるVBAを書きたいのです。 ◆例えば「\\○○\□□\△△\2006年4月」   といった具合に2006年4月1日になったら、自動で「2006年4月」という名のフォルダをつくり、その中に4月の間はエクセルファイルを自動で保存したいのです。 ◆そして、5月1日になればフォルダ「△△」の中に「2006年5月」というフォルダが自動的にできる。 上記のようなイメージです。 自身では、そのようなVBAが、可能か不可能なのかすら全くわかりません。初心者といえど勉強不足で皆様に頼ってばかりですが、どうかご指導ください。 以上、よろしくお願いします。

専門家に質問してみよう