皆さんこんにちは。宜しくお願いしますm(_ _)m。

 Excelでマクロを含んだファイルを作成していたのですが、急に「不正な処理」でファイルそのものが起動できなくなってしまいました。

 どうやら、Excel起動時に実行されるマクロに問題が有るようなので、実行を中止したいのです。

 ショートカットキーがあったと思うのですが、どうしても思い出せません。助けてくださいm(_ _)m!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

エクセルを立ち上げて


ツール→オプション→全般→マクロ ウイルスから保護するにチェックをいれて
終了すると
対象のファイルを開くと実行するか否かと聞いてきます。

何かあれば補足して下さい、

この回答への補足

ご回答ありがとうございます。今回の問題は、Excelそのものが起動しませんので、マクロ実行前に止めてしまいたいのです。宜しくお願いします。

補足日時:2002/02/12 11:03
    • good
    • 0
この回答へのお礼

 すみません、補足してしまいましたが、良く考え直してみると仰る通りですね(^^;)。

 過去に一度、ショートカットキーで回避した記憶がありまして、これに囚われすぎていました(^^ゞ。

 おかげで無事、ファイルを開く事が出来ました。これからデバッグ作業に入ります。ありがとうございました。

お礼日時:2002/02/12 11:51

↓の方のいうように、


実行するか否かというときに「無効にする」を選ぶのです。
    • good
    • 1
この回答へのお礼

 お答えありがとうございます。なるほど(^^;)。ショートカットキーばかりに気をとられていました。
別途Excelだけ起動して、設定しておけば良いのですね。

 ショートカットキーも思い出したかったけど、目的は達成されましたので満足です。
助かりましたm(_ _)m。

お礼日時:2002/02/12 11:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELマクロで質問 起動と同時にマクロ実行って・・・・

こんばんは。
起動と同時にEXCELマクロを走らせたいのですが、
できますでしょうか?
特定のシートに適応するマクロではなく、
すべてのシートに適応するマクロです。

Aベストアンサー

こんばんは。

>特定のシートに適応するマクロではなく、すべてのシートに適応するマクロです。

内容にもよります。場合によっては、クラスイベントによる、インスタンスを作る場合もあります。

Personal.xls (個人用マクロブック)の 標準モジュールに、 Sub Auto_Open か、ThisWorkbook モジュール側の、ThisWorkbook_Open というイベントもありますが、多少、使い分けがあります。ThisWorkbook_Openのほうが強力です。

Qマクロの中でマクロを実行中に中止させたい

マクロの中で別のマクロを実行して、それをループさせてます
中のマクロで問題があったとき外のマクロ自体を停止させるのはどうすればいいのですか?

Sub A()
Do
Application.Run "I"
Application.Run "II"
Loop
End Sub

ここから マクロIの途中で何らかの条件が合えば、
マクロAを終了するにはどうすれば良いのですか?

Aベストアンサー

>マクロIの途中で何らかの条件が合えば、
>マクロAを終了するにはどうすれば

ご相談を素直に読めば,条件判断はIの中で行います


その際に

sub I()
 :
if 条件成立 then End
 :
end sub

のように仕込みます。

QExcel 2013でマクロ実行中に他のブックを編集するとマクロが止まってしまう

Excel 2013で、あるブックのマクロを実行中に他のブックを編集するとマクロが止まってしまいます。Excel 2003では、他のブックを別ウィンドウで開けばマクロ実行中でも編集が可能でした。Excel 2013 ではできないのでしょうか。ご存知の方がいれば教えていただけないでしょうか。

Aベストアンサー

Excel2013以降スタートから立ち上げても同じインスタンスで開かれるようになりました。
http://blog.livedoor.jp/blackwingcat/archives/1906589.html

Altキーを押しながらExcelを立ち上げるか、

Excel.exe本体を探して、そのショートカットをデスクトップなどに作成し、
そのプロパティを開きリンク先が下記のようになっているので
"C:\Program Files (x86)\Microso・・中略・・・\EXCEL.EXE"

"C:\Program Files (x86)\Microso・・中略・・・\EXCEL.EXE" /x
として保存。
これからExcelを立ち上げれば別のインスタンスで開かれます。

マクロを実行するファイルを別のインスタンスで開けば大丈夫じゃないかな?

Q実行中のマクロを中止(中断)したい。

エクセル2003でマクロを勉強中です。
ユーザーフォームにボタンを二つ配置し「ボタン1」は次の命令で
アクティブセルがタイマーで移動します。
この移動中(マクロの実行中)に「ボタン2」クリックで中止させる命令が可能でしょうか?

Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 100
ActiveCell.Value = 1
ActiveCell.Offset(1, 0).Activate
Application.Wait (Now + TimeValue("0:0:01"))
Next i
End Sub

Aベストアンサー

DoEventsを使ってみては如何でしょうか。
長い処理を行っているときに、キャンセルしたい場合などに使います。
(他にも用途はありますが)
詳しい内容はリンクを確認ください。

Dim CancelFlg As Integer

Private Sub CommandButton1_Click()
Dim i As Integer
CancelFlg = 0
For i = 1 To 100
DoEvents
ActiveCell.Value = 1
ActiveCell.Offset(1, 0).Activate
Application.Wait (Now + TimeValue("0:0:01"))
If CancelFlg = 1 Then Exit For
Next i
End Sub
Private Sub CommandButton2_Click()
CancelFlg = 1
End Sub

参考URL:http://officetanaka.net/excel/vba/tips/tips23.htm

DoEventsを使ってみては如何でしょうか。
長い処理を行っているときに、キャンセルしたい場合などに使います。
(他にも用途はありますが)
詳しい内容はリンクを確認ください。

Dim CancelFlg As Integer

Private Sub CommandButton1_Click()
Dim i As Integer
CancelFlg = 0
For i = 1 To 100
DoEvents
ActiveCell.Value = 1
ActiveCell.Offset(1, 0).Activate
Application.Wait (Now + TimeValue("0:0:01"))
If CancelFlg = 1 Then Exit For
Next i
End Sub
Private Sub CommandButton2_Cl...続きを読む

QExcel マクロでマクロを含んだファイルを作成保存する方法

main.xlsm にはいくつかのシートがあります。
その中にある sheetA というシートを独立したワークブックとして作成保存するマクロの作成についてです。作成されるワークブック内にマクロを含めて作成保存したいのですがやり方がわかりません。
不可能でしょうか。
可能であればやり方をお教え下さい。

以下の例ではmain.xlsm内にあるsheetAを新規ワークブックとしてコピーし、sheetA.xlsm というファイル名で保存するものです。
sheetA.xlsm ではファイルを閉じる前に「Good-bye」というメッセージを出す、というものです。

よろしくお願いします。


●main.xlsm内のコード
Sheets("sheetA").Copy
ActiveWorkbook.SaveAs Filename:="C:\test\sheetA.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close

●sheetA.xlsmのThisWorkbook内のコード
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox ("Good-bye")
End Sub

main.xlsm にはいくつかのシートがあります。
その中にある sheetA というシートを独立したワークブックとして作成保存するマクロの作成についてです。作成されるワークブック内にマクロを含めて作成保存したいのですがやり方がわかりません。
不可能でしょうか。
可能であればやり方をお教え下さい。

以下の例ではmain.xlsm内にあるsheetAを新規ワークブックとしてコピーし、sheetA.xlsm というファイル名で保存するものです。
sheetA.xlsm ではファイルを閉じる前に「Good-bye」というメッセージを...続きを読む

Aベストアンサー

いくつか検討してみました。
大きく分けると二種類のコードになりますが、

標準Module に書かれたものを、再利用するものです。ThisWorkbook内のコードは、エクスポート/インポートすると、クラスモジュールになってしまいますので、そのコードを、活用するためには、もうひとつ別の起動用マクロが必要になってしまいます。それで、一般的には、標準Module 一本にするのが楽かと思います。

二番目は、趣向の強いもので、回答者としてのマナー違反だと言われかねないものです。(マナー違反を自覚しないで書いているわけではありません。しかし、これを他人の環境で人知れず実行するためには、もう一つ非公開の技術が必要です。)

私は、最初のほうのものをお勧めします。
どちらも、直接、マクロコードを触りますから、

 セキュリティセンターのマクロの設定で、
 開発者向けのマクロの設定
 レ VBAプロジェクトオブジェクトモデルへのアクセスを信頼する
 にはチェックが必要です。
(セキュリティのためには、会社などではここはオフにしておくのが一般的です)

'以下のコードは標準モジュールで、Module1 以外にしてください。
'//
Private Const myPATH As String = "C:\Users\[YourNamer]\My Documents\" '末尾には¥を入れてください。
Sub TestMacro1()
'ここでは、Module1 を使います。
Call ExportModule
Sheets("sheetA").Copy
Call ImportModule
'面倒でも、パスとファイル名は分かち書きしてください。
ActiveWorkbook.SaveAs Filename:=myPATH & "sheetA.xlsm", _
   FileFormat:=xlOpenXMLWorkbookMacroEnabled
'保存したので、Falseを入れてください。
ActiveWindow.Close SaveChanges:=False
End Sub

Sub ExportModule()
'エクスポート
 ThisWorkbook.VBProject.VBComponents.Item("Module1").Export _
 Filename:=myPATH & "tmp1.bas"
End Sub

Sub ImportModule()
'インポート
 With ActiveWorkbook
 .VBProject.VBComponents.Import _
 Filename:=myPATH & "tmp1.bas"
 End With
 Kill myPATH & "tmp1.bas"
End Sub
'------
Module1 は、以下のようになっているものとします。

'---------
Sub Auto_Close()
 MsgBox "Good-Bye!"
End Sub
'--------------

'//
Sub TestMacro2()
Const myPATH As String = "C:\Users\[YourName]\My Documents\" '末尾には¥を入れてください。

Sheets("sheetA").Copy
'直接マクロコードを書き込みます。
Call WritingMacroCodes
ActiveWorkbook.SaveAs Filename:=myPATH & "sheetA.xlsm", _
   FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close SaveChanges:=False
End Sub

Sub WritingMacroCodes()
With ActiveWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
'マクロの 1 行目から 3 行目まで書き込みます。
 .InsertLines 1, "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
 .InsertLines 2, " MsgBox ""Good-Bye!"""
 .InsertLines 3, "End Sub"
End With
End Sub
'///

いくつか検討してみました。
大きく分けると二種類のコードになりますが、

標準Module に書かれたものを、再利用するものです。ThisWorkbook内のコードは、エクスポート/インポートすると、クラスモジュールになってしまいますので、そのコードを、活用するためには、もうひとつ別の起動用マクロが必要になってしまいます。それで、一般的には、標準Module 一本にするのが楽かと思います。

二番目は、趣向の強いもので、回答者としてのマナー違反だと言われかねないものです。(マナー違反を自覚しないで書い...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報