掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBAでExcelの再起動するには?(VBScript吐き出し) (ID:103212)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつも勉強させていただいております。以下、ご教授頂けるとたいへん助かります。 「Excelで、自分自身を終了後、すぐ再起動するVBAは可能でしょうか?」 【きっかけ】 Excel2003には、同一シートのコピーを連続で行うと30件くらいで限界になってしまう 仕様があると聞きました。 これを解決するには、Excelを再起動するしかないと思い、 ならば再起動が簡単にできるVBAを作ってしまおうと思いました。 以下、こちらの過去ログを参照して作成しました。 一応それらしい動きはするのですが、sendkeyでF4を使っているので 複数ブックがある際に、無関係のブックも閉じてしまう問題があります。 うまく、該当のブックのみ閉じるようなVBAは作れないでしょうか 参考サイトだけでもご紹介いただけると助かります。 よろしくお願いします。 以下試作コード Sub SelfReset() mypath = ThisWorkbook.Path & "\" & ThisWorkbook.Name '終了行 l1 = "Set ws = CreateObject(""WScript.Shell"")" l2 = "Set p = ws.Exec(""Excel.exe"")" l3 = "ws.AppActivate (p.ProcessID)" l4 = "WScript.Sleep 1000" l5 = "ws.SendKeys ""%{F4}""" l6 = "WScript.Sleep 1000" '再起動行 l7 = "ws.Run ""rundll32.exe url.dll , FileProtocolHandler " & mypath & """, vbNormalFocus, False" 'VBS出力 n = 1 Open "C:\hoge.vbs" For Output As #1 Print #1, l1 Print #1, l2 Print #1, l3 Print #1, l4 Print #1, l5 Print #1, l6 Print #1, l7 Close #1 'VBS実行 Set objWShell = CreateObject("WScript.Shell") objWShell.Run "C:\hoge.vbs", 1, 0 End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.