Page 817 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼指定日指定時刻にマクロを自動実行 hana 03/2/27(木) 16:45 ┣Re:指定日指定時刻にマクロを自動実行 こう 03/2/27(木) 17:37 ┃ ┗Re:指定日指定時刻にマクロを自動実行 hana 03/2/27(木) 22:43 ┃ ┗自動実行でExcelは不向き? こう 03/3/1(土) 14:18 ┃ ┣Re:自動実行でExcelは不向き? hana 03/3/2(日) 19:57 ┃ ┗Re:自動実行でExcelは不向き? yu-ji 03/3/3(月) 9:29 ┗Re:指定日指定時刻にマクロを自動実行 ポンタ 03/2/27(木) 18:24 ┗Re:指定日指定時刻にマクロを自動実行 hana 03/2/27(木) 22:58 ┣Re:指定日指定時刻にマクロを自動実行 ポンタ 03/2/28(金) 9:52 ┗Re:指定日指定時刻にマクロを自動実行 ポンタ 03/2/28(金) 13:39 ┗Re:指定日指定時刻にマクロを自動実行 hana 03/3/2(日) 20:03 ─────────────────────────────────────── ■題名 : 指定日指定時刻にマクロを自動実行 ■名前 : hana ■日付 : 03/2/27(木) 16:45 -------------------------------------------------------------------------
先程教えて頂いた内容と似ていますが、毎月1日がきたら 自動的にあるマクロを実行させることはできますか? 例えばbookを開かずに毎月1日0:00になったら勝手に処理をして くれている、というようなことは可能なのでしょうか? |
hana さん、こんにちわ >毎月1日がきたら >自動的にあるマクロを実行させることはできますか? >例えばbookを開かずに毎月1日0:00になったら勝手に処理をして bookを開かないとマクロは実行できませんからVBA以外で実現させましょう。 色々方法はあると思いますが、例えばMS-DOSコマンドの「AT」コマンドは いかがですか? |
こうさんこんばんは!レスありがとうございます。 MS-DOSですか・・。全く検討もつかないのですが、簡単に出来るので しょうか??(マクロもド素人ですがそれ以上に使ったことがない んです・・) |
hana さん、こんにちわ。 >MS-DOSですか・・。全く検討もつかないのですが、簡単に出来るので >しょうか?? お使いのOSは何ですか? Windows200,XPならコントロールパネルに「タスク」がありますので、 これを使用すれば簡単にスケジュールを設定することがでいます。 (Win98以前は未確認です) ちなみに、この「タスク」で実行されたアプリケーションは、バックグラウンド で実行されるようなので、以下のような条件では不向きのようです。(未確認) メッセージを表示させて応答を待つ。とか、 終了ボタンをクリックしないと終了しない。 別枝によると、特に「自動実行」にはこだわっていないようですので、 ポンタさんの提案内容などを検討されてはいかがでしょうか? |
こうさんこんばんは。間があいてしまってすみません。 OSですが、会社は95なんです。。MS-DOSって聞いて 腰が引けましたが、簡単にできるというのなら今度挑戦 してみたいと思いました。今回はマクロでやってみようか と思います。色々勉強になりました。ありがとうございました! |
▼こう さん: >Windows200,XPならコントロールパネルに「タスク」がありますので、 >これを使用すれば簡単にスケジュールを設定することがでいます。 >(Win98以前は未確認です) 必要ないとは思いますが、一応補足です。 Win98にもタスクスケジュール機能はありますが、ログインしている状態 でないと動かなかったと思います。 #バックグラウンドでは動かない・・・・はず。 ログインしてれば、普通にダブルクリックするのと同じように、ファイルが開いて マクロが実行されます。 Win95にはなかったんじゃなかったかな? |
毎月1日0:00にどんな処理をしたいのかによって 適・不適が出るように思います。 どんな処理をしたいのですか? |
ポンタさんこんばんは!レスありがとうございます。 (いつもすみません) >毎月1日0:00にどんな処理をしたいのかによって >適・不適が出るように思います。 > >どんな処理をしたいのですか? 1つは選択セルのclearcontents(前月分の入力部分を消して まっさらに戻す作業)、もう1つは別bookに元bookからのコピペ なのですが・・。修正専用bookを別に作成していて、1度そちら にデータを移して、元bookの入力部分は真っ白に戻すことができるか、 と思ったのです。 修正がいつまでもだらだら続く事態を回避する為にそのように できないかと上から言われまして・・。(修正専用bookは1人の 人が管理する予定のためそちらにデータを引き上げる形) 「毎月1日0:00」というのが絶対条件ではなく、要は月が変わって からアクセスした時に上記の様な処理が終わっていればよいのですが ・・。何か良い方法がありますでしょうか? |
おはようございます。 一例ですが、ThisWorkBookモジュールに以下のコードを貼り付けると、 ブックを開いた直後に、 1.Sheet1のA1に入力されている日付と今日の日付を比較する (Format関数で2003/02の形式に変換しています) 2.今日の日付のほうが新しいなら、メッセージを出す 3.A1に今日の日付を書き込む 4.ブックを上書き保存する という作業します。 Private Sub Workbook_Open() Dim MyDate As Date MyDate = Worksheets("Sheet1").Range("A1").Value If MyDate < Format(Date, "yyyy/mm") Then MsgBox ("今月最初のアクセスです") End If Worksheets("Sheet1").Range("A1").Value = Format(Date, "yyyy/mm") ThisWorkbook.Save End Sub これに手を加えたファイルを個人用マクロブックとして 登録しておくというのはいかがでしょう? |
別案です。 勉強を兼ねてVBスクリプトで作ってみました。 MyPath = "C:\My Documents\" MyName = "毎月一日零時.LOG" は環境に合わせて書き換えてください。 以下のコードをメモ帳に貼り付けて、 ~~~~~~~~ 「毎月一日零時.VBS」という名前で保存してください。 できたファイルをダブルクリックして、 動作を確認してみてください。 Set objFs = WScript.CreateObject("Scripting.FileSystemObject") MyPath = "C:\My Documents\" MyName = "毎月一日零時.LOG" If objFs.FileExists(MyPath & MyName) Then Set objText = objFs.OpenTextFile(MyPath & MyName) MyDate = objText.ReadLine objText.Close If MyDate < Left(Date, 7) Then Main Else MsgBox("今月の処理は終わっています") End If Else MsgBox("初めて起動されました") End If Set objText = objFs.CreateTextFile(MyPath & MyName,True) objText.WriteLine(Left(Date, 7)) objText.Close Sub Main() set objXL = Wscript.createobject("excel.application") objXL.Visible = True Set objBook = objXL.WorkBooks.Add objXL.Cells(1,1) = "月が変わりました" End Sub |
ポンタさんこんばんは。間が空いてしまってすみません。 2案もありがとうございました。2つ目のVBスクリプト ですが、「文字が正しくありません(5行目1文字目)」 と出てしまいうまく試せませんでした。。VBスクリプト 自体使ったことがなかったのでよくわかりませんし、今回は 1つ目に教えて頂いたマクロでやってみようかと思います。 色々教えていただきいつも勉強させて頂いています。 この度もありがとうございました! |