• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:大至急! 一連のマクロが止まってしまいました。対処法をおしえてください。)

大至急!一連のマクロが止まってしまいました。対処法をおしえてください。

chibita_papaの回答

回答No.2

どこかのタイミング 例えば夜中の2時とか・・ shell "c:\windows\system32\shutdown.exe /f /r /t 000" または、タスクスケジューラに c:\windows\system32\shutdown.exe /f /r /t 000 をセットし再起動をかけてみたらどうでしょうか。 スタートアップに、該当のマクロを含むEXCELをセットし 自動起動すれば、解決すると思います。

関連するQ&A

  • コード実行の高速化をしたい

    こんにちは。 必要に迫られ、初めてマクロを組んでいます。 下記三つのコードの実行に時間がかかり、 その後の処理に支障が出てきているようです。 遅い時は、1分30秒程度かかる時もあります。 なんとか、高速化できないものかとなやんでいます。 内容 excel 2007 file size 約400kのブック タイマーによりそれぞれ (1)23時54分 (2)23時56分 (3)23時58分 に起動するようになっています。 (1) Sub DB保存() Dim bn As String Dim 値 As String Dim 本日 As String Dim 新ブック As String Dim 年 As String Dim 月 As String Dim 日 As String Dim 時間 As String bn = "温湿度管理表.xlsm" 年 = Year(Now) 月 = Month(Now) 日 = Day(Now) 時間 = 235400 '変更注意 本日 = Format(expression:=Date, Format:="yyyymmdd") 値 = (本日) & (時間) 新ブック = "C:\システム\管理者用\DB\DB" & (値) & ".xlsm" 'パス変更注意 Workbooks(bn).SaveCopyAs Filename:=新ブック End Sub (2) Sub DBから日別保存へコピー() On Error Resume Next Dim bn As String Dim sheetn As String Dim セル As String Dim 値 As String Dim 本日 As String Dim 元ファイル As String Dim 新ファイル As String Dim 年 As String Dim 月 As String Dim 日 As String Dim 時間 As String bn = "温湿度管理表" sheetn = "管理2" セル = "H13" 年 = Year(Now) 月 = Month(Now) 日 = Day(Now) 時間 = 235400 '変更注意 本日 = Format(expression:=Date, Format:="yyyymmdd") 値 = (本日) & (時間) 元ファイル = "C:\システム\管理者用\DB\DB" & (値) & ".xlsm" 'パス変更注意 'パス変更注意 新ファイル = "C:\システム\温湿度 管理\日別保存データ\" & Format$(Date, "yyyy年") & "\" & Format$(Date, "mm月") & "\" & Format$(Date, "mm月dd日") & ".xlsm" 'パス変更注意 Dim MyFile As String Dim fso, f, ts MyFile = "C:\システム\管理者用\DB\DB" & (値) & ".xlsm" 'パス変更注意 Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(MyFile) = True Then End If On Error Resume Next FileCopy 元ファイル End Sub (3) Sub 表のクリア() ' 表のクリア Macro ThisWorkbook.Worksheets("管理").Range("F11:P160").ClearContents End Sub 特に(2)と(3)が遅くて、 場合により、(3)以降タスクマネージャーのCPU使用率が延々100%になったままになります。 なにぶんドのつく素人でして、困っています。 どうかお知恵を拝借願います。

  • screenupdatingが機能しなくて困ってます

    お願いします。 長文失礼します。 下記マクロを実行しても、screenupdatingが機能せず、 ブック展開やページ移動が丸見えで、わずらわしいです。 ブックopenや他のマクロに移ると機能しないものなのですか? それとも、コード記述に誤りがあるのでしょうか? excel2007 「管理表.xlsmにて指定された過去データ.csvファイルを開いて、それを表示用xlsmブックに書き出し表示するマクロ」 (管理表.xlsm、表示.xlsmそれぞれに) Thisworkbook.Open にて「画面最大化」のマクロ (管理表.xlsmファイルの標準モジュールに記載) Sub 検索する() On Error GoTo ErrorHandler Dim bn As String Dim sheetn As String Dim セル1 As String Dim セル2 As String Dim セル3 As String Dim 年 As String Dim 月 As String Dim 日 As String Dim 検索日 As String Dim アドレス As String Dim nsheet As String Dim nbook As String Dim csheet As String Dim cbook As String Dim nアドレス As String Dim fso Dim sFile As String bn = "管理表.xlsm" sheetn = "検索" セル1 = "M30" セル2 = "Q30" セル3 = "V30" 年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value 月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value 日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value 検索日 = (年) & (月) & (日) & (235400) アドレス = "C:\モニターシステム\管理者用\DB\DB" & (検索日) & ".csv" 'パス変更注意 nアドレス = "C:\モニターシステム\管理者用\system\program\表示.xlsm" cbook = "DB" & (検索日) & ".csv" csheet = "DB" & (検索日) nbook = "表示.xlsm" nsheet = "手動操作" Workbooks.Open Filename:=nアドレス, ReadOnly:=True Workbooks(nbook).Sheets("検索中").Select Application.ScreenUpdating = False sFile = アドレス Set fso = CreateObject("Scripting.FilesystemObject") If fso.FileExists(sFile) = True Then Workbooks.Open Filename:=アドレス Workbooks(cbook).Sheets(csheet).Copy_After:=Workbooks(nbook).Sheets(nsheet) Application.Run (nbook) & "!" & "データ転送" '転送表示マクロ Application.Run (nbook) & "!" & "シート保護" 'シート保護マクロ UserForm4.Show (vbModeless) Else MsgBox "ファイルが存在しません" End If Exit Sub ErrorHandler: MsgBox "検索表示に失敗しました。入力数字を確認してください。 ※一桁の数字は、必ず先頭に0を付けてください。", vbInformation, "検索失敗" Err.Clear End Sub (workbook(表示.xlsm)の標準モジュールに記載) Sub データ転送() Dim bn As String Dim sheetn As String Dim セル1 As String Dim セル2 As String Dim セル3 As String Dim 年 As String Dim 月 As String Dim 日 As String Dim 検索日 As String Dim csheet As String Dim ccell As String Dim psheet As String Dim pcell As String Dim pbook As String Dim cbookad As String bn = "管理表.xlsm" '変更注意 sheetn = "検索" セル1 = "M30" セル2 = "Q30" セル3 = "V30" 年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value 月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value 日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value 検索日 = (年) & (月) & (日) & (235400) cbook = "DB" & (検索日) & ".csv" cbookad = "C:\モニターシステム\管理者用\DB\DB" & (検索日) & ".csv" pbook = "表示.xlsm" csheet = "DB" & (検索日) ccell = "A3:P160" psheet = "管理" pcell = "F10:P160" Workbooks(pbook).Activate Application.ScreenUpdating = False ThisWorkbook.Worksheets("管理").Visible = xlSheetVisible Workbooks.Open Filename:=cbookad Workbooks(cbook).Sheets(csheet).Range(ccell).Copy _ Workbooks(pbook).Sheets(psheet).Range(pcell) Workbooks(cbook).Close savechanges:=False Sheets("記録表").Select Range("A1").Select ThisWorkbook.Worksheets("管理").Visible = xlSheetHidden UserForm14.Show '終了ボタン Application.ScreenUpdating = True End Sub 汚く拙いマクロで申し訳ありませんが、 宜しくお願いします。

  • 新しく開いたブックをアクティブにするマクロ

    マクロ 新しく作ったブックをアクティブにする マクロ初心者です。 マクロを使って同階層にあるファイルのアクティブのシートを ひとつのブックにコピーして保存するマクロを作りたいと思ってます。 他の質問を参照して下記のコードを途中まで作成しました。 参照した質問では、 マクロの入っているブックにシートをコピーするようでしたが、 そうすると保存した時にマクロも保存されてしまうので 私なりに調べて、新しいブックにシートコピーするようにしましたが、 この記述の後、新しいブックをアクティブにする記述がわからず、 保存できなくなってしまいました。 ここまで終わるとマクロの入っているブックがアクティブになって終わります。 このあと新しく開いたブックをアクティブにして、 ブックのsheet1~3を削除して、名前をつけて保存したいのですが 開いたブックをアクティブにするマクロをご伝授ください。 あたらしくブックをつくるとbook1~・・・と名前が変わってしまうので 変数で名づけたいのですが、やり方が良くわかりませんのでよろしくお願いします。 何卒よろしくお願いします。 Sub consolid_test() Dim shCnt As Integer Dim Wb As Workbook Dim i As Integer Dim sh As Worksheet Dim nSh As Worksheet Dim fName As String Dim ka As String Application.ScreenUpdating = False '画面更新を一時停止 Application.DisplayAlerts = False Set mb = Workbooks.Add '新しいコピー先ブックをmbとする。 myfdr = ThisWorkbook.Path fName = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索 Do Until fName = Empty '全て検索 If fName <> mb.Name Then 'ブック名がこのブックの名前でなければ Set Wb = Workbooks.Open(myfdr & "\" & fName) 'そのブックを開きwbとする。 Wb.ActiveSheet.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く ActiveSheet.Name = Range("B16") 'シート名の変更 ActiveSheet.Unprotect 'シート全体をコピーして値にする Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Wb.Close (False) '保存の有無を聞かずに保存しないで閉じる N = N + 1 'ブック数をカウント End If fName = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す ・ ・ ・ ・

  • 個人用マクロブックの有無

    エクセルVBAで現在ユーザーが使っているパソコンに個人用マクロブックが存在するかどうかを取得する方法を考えました。 まず、開いているBOOKを総当りして、エクセル2003までなら PERSONAL.XLS、2007からは"PERSONAL.XLSM がひらいているかどうかを調べる方法。 Sub test1() Dim wb As Workbook For Each wb In Workbooks If wb.Name Like "PERSONAL.XLS*" Then MsgBox "個人用マクロブックがあります。" Exit Sub End If Next MsgBox "個人用マクロブックはありません。" End Sub 最初から個人用マクロブックがあるものとして変数に入れ、エラーになったら無いと判断する方法。 Sub test2() Dim wb As Workbook Dim v As String v = IIf(Val(Application.Version) > 11, "PERSONAL.XLSM", "PERSONAL.XLS") On Error Resume Next Set wb = Workbooks(v) On Error GoTo 0 MsgBox "個人用マクロブックが" & IIf(wb Is Nothing, "ありません。", "あります。") End Sub でも、自分の端末はまだ2000で、しかも個人用マクロブックがあるので、ちゃんと判定できているのかどうか自信がありません。 これで正しいのでしょうか? また、test1とtest2ではどちらをつかえばいいのでしょうか? あるいは、もっと簡単なやりかたはないのでしょうか?

  • マクロ エクセル2003

    いつも回答して頂き感謝しています。 原紙のブックを開き、別の名前を付けて保存するマクロを考えています。 原紙のブックを開くマクロはネットから探して、少し修正して出来あがったのですが、 この開いた原紙のブックに別の名前を付けて保存するマクロで困っています。 ただ単に名前を付けるだけだったら問題無いのですが、 その名前が既に保存されていないか確認した後、保存としたいのです。 ブックを開く記述を少し引用して出来ないかやってみたのですが、 Const Target2 As String = "C:\Users\Owner\Documents\" & NewFile で、定数式が必要です。と表示されエラーが発生してしまいます。 どのように変更したら上手くいくのでしょうか?宜しくお願い致します。 Sub Sample() Dim buf1 As String Dim buf2 As String Dim NewFile As String Dim ws1 As Worksheet Dim wb As Workbook Set ws1 = ThisWorkbook.Worksheets("作成") NewFile = "借入貸出" & ws1.Range("C4").Value & "." & ws1.Range("D4").Value Const Target1 As String = "C:\Users\Owner\Documents\借入貸出原紙.xlsx" Const Target2 As String = "C:\Users\Owner\Documents\" & NewFile & ".xlsx" buf1 = Dir(Target1) If buf1 = "" Then MsgBox Target1 & vbCrLf & "は存在しません", vbExclamation Exit Sub End If For Each wb In Workbooks If wb.Name = buf1 Then Application.DisplayAlerts = False Workbooks("借入貸出原紙.xlsx").Close Application.DisplayAlerts = True End If Next wb Workbooks.Open Target1 buf2 = Dir(Target2) If buf2 = "" Then End If End Sub

  • Excelマクロについて教えてください。

    Excelマクロについて教えてください。 フォルダ内にある全てのファイルのA列にAを追加したいのですが、 下記だとA1にAを上書きしてしまいます。 book.Sheets(1).Range("A1") = "A" '最初のシートのA1に"A"を フォルダ内のファイルのA列に値がある場合、Aを追加する場合のマクロを教えてください。 例) test.xls A列 →A列 12345 →A12345 55555 →A55555 Sub sample() Dim dataFolder As String Dim file As String Dim book As Workbook Dim fileName As String Dim fileExt As String dataFolder = "C:\test\" 'excelがあるフォルダ file = Dir(dataFolder & "*.xls") '最初のexcelファイル名 Do While file <> "" 'ファイル名がある間 '内容変更 Set book = Workbooks.Open(dataFolder & file) 'ブックを開く book.Sheets(1).Range("A1") = "A" '最初のシートのA1に"A"を book.Close True '上書きして閉じる file = Dir '次のファイル名 Loop '繰り返す End Sub 教えてください。

  • マクロがあるファイルの読み出し時にマクロの有効を聞いてこないようにする。

    以下のようにエクセルのブックのシート名をゲットしようとしたのですが、エクセルにマクロを入れてあるため、「マクロの有効、無効」を聞いてきます。 聞いてこないようにするため xlApp.DisplayAlerts = False を入れたのですが、ダメでした。なにか良い方法はあるのでしょうか? 宜しくお願いいたします。 Dim FileNam As String Dim filebasho As String Dim wbsinario As Object Dim shtsinario As Object Dim ExcelWasNotRunning As Boolean If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' xlApp.DisplayAlerts = False Set shtsinario = GetObject(filebasho & "\" & FileNam) Set wbsinario = shtsinario.Application.Workbooks(FileNam)

  • Excel2010のマクロについて教えてください。

    今下記のマクロ Sub SHUURYOU() ActiveWorkbook.Save Application.Quit End Sub をabc.xlsmと言うシートに書き込みボタンに貼り付けました。 又他のBookにあるdef.xlsmと言うシートにも貼り付けました。 それぞれ単独で開き書き込みをしてマクロボタンを押せば保存して終了します。 しかしabc.xlsmとdef.xlsmが同時に開いていると一方のマクロを実行すると両方ともクローズしてしまいます。 このマクロを単独のシート(book)だけに有効にするにはどのようにマクロを書けばよいのでしょうか。 教えてください。

  • VBA 他のブックから図形にマクロを登録するマクロ

    別のブックから複数あるブックを開いてボタンを作りマクロを登録し、保存して閉じるということを繰り返したいのですが、ボタンを作るところまではできたのですが、ボタンにマクロを登録する際に下記の="A.xlsm!マクロ名"の部分のAを変数もしくは"\\〇〇\" & .Cells(I, "B") & ".xlsm"のように変更したいのですが、できません。 ご教示頂ければと存じます。何卒宜しくお願い致します。 Sheets("〇〇").Shapes("Button 4").OnAction = "A.xlsm!マクロ名"

  • エクセルでのマクロ

    学校の授業で、エクセルのマクロ(VBA)を習っています。 そこで、質問なんですけど、 Dim ???? As Long Dim ???? As String というように????のところが異なる文字をおいたりして変数を定義するのはわかったのですが、なぜLong とStringと異なるものを使うのでしょうか?同じでも問題はないのでしょうか?教えてください。