[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『自動実行のマクロ、欠陥マクロになってしまったので対処法を教えてください。』(KUN)
根本的に問題の有るマクロになってしまいました。 回避方法を教えてください。
やりたい事は、 1)タスクスケジューラーでEXCELを起動。 2)AutoOpenでマクロを実行。 3)日付名で別ファイルに保存
毎日に結果を蓄積できる!はずだったのですが、 致命的な大欠陥が、見つかりました。
原因は、 「昨日の結果を確認しようと、日付のエクセルを開くと・・・ 2)のマクロが動き始め、最新の結果になってしまい その日の結果が絶対に見れないコトに気づきました。 こんなダメ マクロの、対処方法を教えてください。 宜しくお願い致します。
↓ダメなマクロです。
Sub Auto_Open() Application.DisplayAlerts = False Application.Run "Macro1" End Sub
Sub Macro1() Range("A2").Select ActiveCell.FormulaR1C1 = "自動マクロ実行テスト中・・・保存" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\test\デスクトップ\結果\" & Format(Range("a1").Value, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub
< 使用 Excel:Excel2007、使用 OS:WindowsXP >
マクロ無しのファイルとして保存するようにしてはどうでしょうか。
単一シートであれば、シートをコピーして保存しても良いですし、 xlsx フォーマットでマクロを落として保存するようにしてもできるかと思います。
(Mook) 2015/01/20(火) 18:36
こんばんは
SaveAs をかける前に、同名のブックの存在をチェックして、もし、存在すれば、メッセージを出して上書きするかどうかを 聞いて処理分岐させればいいと思いますが、このブック自体は、だれがいつ閉じるんですか?
それと、Application.DisplayAlerts = False は名のために記述しているんですか?
(β) 2015/01/20(火) 19:51
横から失礼します。
履歴を取りたいのなら
>ActiveWorkbook.SaveAs
↓の方がよくないですか?
ActiveWorkbook.SaveCopyAs (カリーニン) 2015/01/20(火) 21:10
Mookさん ありがとうございます。 マクロ無しで保存できるなんて知りませんでした。 早速、試して(勉強して)みます。
βさん ありがとうございます。 >このブック自体は、だれがいつ閉じるんですか? そうなんです、自動でクローズするマクロを試したのですが 今回、質問した内容と同じ原因で結果がまったく見れない・・・なんてコトになり 諦めました。 それと、Application.DisplayAlerts = False は、色々試したマクロの 残骸が残ってしまいました。 「マクロを有効にする・無効にする」を表示しない方法を探していました。 ご教授ありがとうございます。
カリーニンさん ありがとうございます。 まだまだ勉強不足で、ご教授頂いたマクロの違いがわかりません。 勉強します。
皆様 本当にありがとうございました。 これからも勉強して行きますので、宜しくお願い致します。
(KUN) 2015/01/21(水) 09:44
>ご教授頂いたマクロの違いがわかりません。
簡単なサンプルを作ってみました。 テスト用ブックを作成して一旦保存し、コードを標準モジュール に貼り付けて試してみてください。
Sub testA()
Dim wbmei As String Dim newwbmei As String Dim fol As String fol = ThisWorkbook.Path newwbmei = Format(Now, "yymmdd_hhmmss") & "_" & ThisWorkbook.Name MsgBox ThisWorkbook.Name ThisWorkbook.SaveCopyAs fol & "\" & newwbmei MsgBox ThisWorkbook.Name End Sub
Sub testB()
Dim wbmei As String Dim newwbmei As String Dim fol As String fol = ThisWorkbook.Path newwbmei = Format(Now, "yymmdd_hhmmss") & "_" & ThisWorkbook.Name MsgBox ThisWorkbook.Name ThisWorkbook.SaveAs fol & "\" & newwbmei MsgBox ThisWorkbook.Name End Sub (カリーニン) 2015/01/21(水) 22:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.