• ベストアンサー

定時に立ち上がるエクセルを自動で閉じさせたい!

いつも「ある時間になるとエクセルが立ち上がり、 手動で保存する」という作業をしております。 時間は決まっているので、なんとかそのエクセルに 自動で名前(出来れば日付)をつけて保存させたいのです。 立ち上がっているエクセル自体に操作(例えばプロシージャ を追加)は出来ません。 WHSやVBS?なんかの存在はしっているのですが・・・ よろしくお願いします。

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

  • ベストアンサー
  • toshi_ho
  • ベストアンサー率42% (71/168)
回答No.3

こんなスクリプトでどうでしょう。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate("Microsoft Excel") WScript.Sleep 100 WshShell.SendKeys "%" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 WshShell.SendKeys "A" WScript.Sleep 100 WshShell.SendKeys month(date) & day(date) WScript.Sleep 100 WshShell.SendKeys "{ENTER}" これで日付のついたファイル名で保存されます。

heimdal
質問者

補足

ありがとうございます。 感激です。 もう一つよろしいでしょうか? 実際保存するときは0時を過ぎています。 そこで、一日前の日付を取得してファイル名に したいのですが可能でしょうか? よろしくお願いします。

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

その他の回答 (3)

  • toshi_ho
  • ベストアンサー率42% (71/168)
回答No.4

えーと、それは簡単な話で(朝飯前)、 WshShell.SendKeys month(date) & day(date)を WshShell.SendKeys month(date) & day(date-1)に するだけです。 実際にお腹がすいています。!!

heimdal
質問者

お礼

おかげさまで解決しました。 ありがとうございました。

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

既にエクセルが起動している状態で、次のスクリプトを実行すると セルにaaaが入力されます。(拡張子VBSで保存して、実行してください) Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate("Microsoft Excel") WScript.Sleep 100 WshShell.SendKeys "aaa" 同じことをするのでも次のような記述も可能です。 'C:\test\test.xlsを開いた状態で Set excel = GetObject("C:\test\test.xls") excel.ActiveSheet.Cells(1,1) = "aaa" URLを参考に一度作ってみてください。 WSHは、アプリケーションを制御できるので色々 試してみて下さい。

参考URL:
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml
heimdal
質問者

補足

toshi_ho様 ありがとうございます。 確かにaaaは入力されました。 で、どうすればいいんですか? aaaが入力されるのと、エクセルを捕まえて 名前をつけて保存という作業に接点が見つかりません。 よろしくお願いします。

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

次のようなマクロを別ファイルで作ってみてはどうですか? X = Workbooks.Count For I = 1 To X If Workbooks(I).Name = ブック名 Then Workbooks(I).Sheets(1).Activate       exit for else end if next ActiveWorkbook.SaveAs Filename:=ブック名 ActiveWorkbook.Close

heimdal
質問者

お礼

ありがとうございます。 参考にさせていただきます。

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

関連するQ&A

  • EXCELの自動(再)計算について

    EXCELの自動計算について質問します。 EXCELの自動計算である特定のセルのみ自動計算をしないように設定することは出来るのでしょうか? 具体的には、ある共有しているファイルがありまして、そのトップ部分にファイルの更新時間を表示させております。 NOW()関数をそのセルに設定しているのですが、オプションでの自動計算が自動になっていると EXCELを開いた瞬間にこのファイル更新時間が再計算されてしまいますが、ここの更新時間表示の関数のみ オプションの自動計算の「手動(保存時に再計算)」にしたいのです。 この共有しているEXCELの他のセルには様々な関数が設けてあるのですが、それについては自動で再計算してもらわないと とても困るのです。(コンピュータを余り知らない方々も操作することもあるので、F9を押して再計算して下さいと混乱を招く 様な事はしたくないと言うこともあるので…) 何か良い方法がありますでしょうか?

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

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

  • エクセルの自動計算を既定にする方法

    Windows98にOffice2000 WindowsXPにOffice2003が入っていて エクセルファイルを持ち歩いて両方のPCで作成しています。 98の方でツール~オプ が、手動計算になっていたので 自動計算にチェックを入れてフラッシュメモリに保存して、後でXPで開いて又作業をしたところ こちらでも手動計算になっていました。 こちらも自動にチェックを入れて保存して 後日98で作成したところ 又、手動計算になっていました。 XPの方はファイルによるのかどうか確認はしていないのですが 時により手動であったり自動であったりしています。 これら(両方のエクセル)をいつも自動計算を既定として設定する方法はありませんか?

  • excelの自動保存の設定をしているのですが

    excel(2000)で自動保存設定しています。 会社のパソコンなのですが、10分何もしないでいると、 画面がロックされ?、ログインし解除するようになっています。 そうしてエクセルの画面が出てきますが、 自動保存の時間がとっくに過ぎているのですが、 そのダイアログボクスが出ていません。 一時的な画面ロックがされていると、 自動保存の設定時間はロックされたときに、とまってしまうのでしょうか?自動保存をする時間の間隔というのは 作業している間の中での時間となるのでしょうか?

  • エクセル保存時に自動で日付

    お世話になります。 エクセル2003で保存するときに、 ファイル名の頭に、あるセルの日付を毎回打たなくても自動でつけることってできますか? マクロでもかまいませんが。 たとえばA1に061212と入っていたら、 そのブックを保存するときに、061212 業務日報って自動で保存時の名前に出るように なるでしょうか?

  • エクセルの自動保存

    エクセルの自動保存について教えてください。 ワードの場合、自動保存にすると、自動保存処理時点で、下の方に処理中であることを示すバーが現れ、何らかの原因でシステムが停止しても、自動保存した時点のワード文書が別の名前になって残っていますよね。 これに対し、エクセルでの自動保存では、設定した時間間隔が来ても特に何かを保存する動作をしていないようですし、自動保存先のファイルを開いても大変少数のファイルが残っているだけで、自動保存設定をしたすべてのブックが自動保存されているようには思えません。 これって正常にエクセルの自動保存がされているのでしょうか?

  • 【Windows me】エクセルの自動保存について

    Windows meでパソコンに保存されている古いデータを整理(ファイル名の変更のみ)しようとエクセルを開くと、何も操作せずに閉じても自動保存機能が働き、更新日時が勝手に更新されてしまいます。 古いデータといっても作成日付を元に文書を探したり、その時期にどの現場の工事(建設)を行なっていたかなどを調べるためにとても重要なので、更新日時が変わってしまうととても困ります。 【ツール】→【オプション】を開いても「自動保存」タブはありません。 エクセルはパソコン購入時にインストールされていたものを使用しています。 現在はXPとネットワークで繋ぎ、2台でインターネットが使える環境にしました。 XPのエクセルのアドインのメニューには「自動保存」は入っていませんし、「自動保存」のアドインをCD-ROMからセットアップしたり、ダウンロードしたこともありません。 エクセルのヘルプ機能で「自動保存」について調べ、【ツール】→【アドイン】を見ましたが「自動保存」にチェックは入っていません(OFFになっています)。 ただヘルプにあったように【コントロールパネル】→【アプリケーションの追加と削除】→【Microsoft Office 2000 SR-1 Personal】→【追加と削除】→【機能の追加/削除】→【Microsoft Office】→【Microsoft Excel for Windows】→【アドイン】と進み、【自動保存】を「インストールしない」に設定変更しました。 なぜアドインの自動保存がOFFになっているのに自動保存されるのか、コントロールパネルから設定変更しただけで自動保存されなくなるのかなどWindows meの自動保存について教えてください。 宜しくお願い致します。

  • エクセルで数式が自動化せず・・・

    エクセル2007です。表を作り,あちこちに計算式をリンクさせていますが,急に数値を変えても自動計算されなくなりました。フォルダのオプションで,手動にチェックが入っていたため,自動にチェックを入れなおしたのですが,作業後,フォルダのオプションを開けると,また手動に戻っています。どうしたらよいでしょうか。

  • エクセルで日付順に自動で行を並び替えする方法

    エクセルで日付順に自動で行を並び替えする方法 今現在エクセルを編集しておりますが、下の2点の操作方法がわかりません。 ・「日付」の項目では、「日付」「テキスト」となります。 こちらを日付(古い日付から)、テキストの順に自動で並び替えたい ・同じ「日付」の項目についてですが今日を過ぎた行(最悪日付だけ)を赤文字にしたい 以上の2点の作業方法を教えてください。

  • エクセル タスクスケジューラ使用時の二重起動について

    自動で起動するブック(未保存)を、別のブックのVBAを利用して 保存するため以下のように設定しました。 --------------------------------------------- sub auto_open() Dim sFilName As String sFileName =d:\test\test.xls Workbooks("Book1").Active ActivWorkbook.SaveAs sFileName ActiveWorkbook.Close Application.Quit End Sub (急いで入力しましたので単純なミスはご容赦ください。) ------------------------------------------- このプロシージャを手動にて使用したところ問題なく 動いたのですが、夜中の作業のためWindowsの機能である タスクに登録したところ、先に起動している「Book1」のエクセルとは 別のエクセルが起動してしまい、 Workbooks("Book1").Active  の行で でエラーとなってしまいます。 つまり「ウィンドウ(W)」でブックの切り替えができない状態です。 なんとかこの現象を回避できないでしょうか? もしくは別の方法があればお願いします。 ちなみに、VBSでエクセルを起動してプロシージャを実行しようとも しましたが、このときはプロシージャが動きませんでした。 よろしくお願いします。