• ベストアンサー

エラーになってないのにVBAが中断される

エラーになってないし、止めてもいないのに、VBAが中断される エクセル2010なのですが、マクロを実行すると、一定の間隔でマクロが中断してしまいます。 中断箇所は ・End With ・Set WSH = Nothing ・If tmp Like "*文字*" Then などです。 「コードの実行が中断されました」と表示されます。 中断キーは押していません。 再起動すると治るのですが、どうしてこのような現象が発生するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ふつう、不明なトラブルが発生した時は、最初の段階としては、マクロを、デバッグ--ステップ(F8)で進めていきます。それだけでは原因は分かりませんが、問題の箇所の先に進めるかどうかを調べます。 次に、「コードの実行が中断されました」 というのは、ブレイクポイントが入っている可能性があるということです。IE検索で調べてみますと、一度、マクロをCtrl+Breakで、中断させると、その影響が残るという現象があるそうです。 そこで、デバッグ--[すべてのブレークポイントの解除](Ctrl+ Shift + F9)を試してみたらいかがでしょうか? 参考サイト: http://d.hatena.ne.jp/rizenback000/20110926#c1362737807

scoaxsnc
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

回答No.1

バージョンアップによる不具合などでは、ループの中などに DoEvents 関数を入れることで、症状が改善する場合があります。 http://excelshogikan.com/tips/tips019.html 次のページのお礼欄には、サービスパックの削除と Excel の再インストールにより改善したとの事例が載っています。 http://okwave.jp/qa/q7954036.html >再起動すると治るのですが、どうしてこのような現象が発生するのでしょうか? Excel や VBA のバグなのか、OS やサービスパックの問題なのか、リソースなどその他の原因なのか、何とも言えません。コード自体には問題がなさそうなのであれば、Microsoft に相談するなどしてください。

scoaxsnc
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • WSHスクリプトから動かしたEXCEL・VBAマクロでWSHスクリプトを停止する方法

    WSHスクリプトからEXCELファイルのVBAマクロを呼び出し実行させます。 このマクロ内ではif関数で設定している条件の真偽を判定しています。偽の場合、マクロは終了しEXCELファイルは一旦閉じられます。そして一定時間がたったら、WSHスクリプトのループ処理で再び同じマクロが開かれif関数で条件判定を行います。 もし、真の場合、マクロの設定処理の実行・終了とともにWSHのループ処理も終了させたいのですが、VBAマクロからそのマクロを実行させているWSHスクリプトを停止させることは可能でしょうか。

  • VBAで2つのプロシージャーをつなげるには

    VBAでSub ~ End Subまで書き終えて、一つのプロシジャーを完成させたあと、 その下に、もう一つのプロシジャーを作り、連続してマクロを動かしたいと思ってます。 例に例えると、 Sub test() Dim MyRange As Range Set MyRange = Columns("c").Find(What:="﨑") If MyRange Is Nothing Then Debug.Print "環境依存文字ははみつかりません" Else MyRange.Font.ColorIndex = 3  End If Dim MyCells As Range Set MyCells = Columns("c").Find(What:="髙") If MyCells Is Nothing Then Debug.Print "環境依存文字ははみつかりません" Else MyCells.Font.ColorIndex = 3 End If End Sub      Sub sample()    Dim i As Long   For i = 1 To Cells(Rows.Count, "I").End(xlUp).Row    If InStr(1, Cells(i, "I"), "VBA", vbTextCompare) > 0 Then   Cells(i, "M") = "YES"   End If   Next   End Sub 上記のような2つのマクロをつなげて1つの実家行えるようにするにはどうしたらよろしいのでしょうか。 どうしても実行時に上のマクロと下のマクロが別々に表示されてしまします。 (ちなみに、上側のマクロは環境依存文字を探すマクロ、下側はVBAの文字を見つけ出すマクロです。) どなたかご存知の方いらっしゃいましたら、教えて頂けないでしょうか。 よろしくお願い致します。

  • エクセルVBAのDeleteキーによるエラー

    VBA初心者です。エクセル(2003)のVBAについて質問です。 セルに何か値が入力されたら、隣のセルに「TRUE」と入力し、 入力が消去されたら、隣のセルに「FALSE]と入力されるマクロを作成しています。 下記のコードをシートモジュールに入力し、 標準モジュールにはそれぞれ呼び出し用のマクロを入力しています。 A列とB列は結合されていて、その結合されたA・B列のセルに値が入力されたり消去されたりすると 隣のC列に結果が入力されるようにしたいのですが、 A・B列の値をDeleteキーで消去するとエラーになってしまいます。 BSキーで値を消去するとエラーは出ません。 Deleteキーでもエラーが出ない様にする方法はありますでしょうか。 どなたかご教授お願いします。 ----------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:B1,A3:B3,A5:B5")) Is Nothing Then If Target.Value <> "" Then Select Case Target.Address(0, 0) Case "A1" Call マクロ1_TRUE Case "A3" Call マクロ3_TRUE Case "A5" Call マクロ5_TRUE End Select ElseIf Target.Value = "" Then Select Case Target.Address(0, 0) Case "A1" Call マクロ1_FALSE Case "A3" Call マクロ3_FALSE Case "A5" Call マクロ5_FALSE End Select End If End If End Sub

  • VBA ダブルクリックで行に色をつける方法

    VBAでダブルクリックしたセルを含む行に色をつけたいです。 セルに色をつけるマクロは書いた(下記)のですが、これを行全体に色付けしたいのですが、 うまくいきません。 どなたかご教授ください。 Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect _ (Target, Range("A3").CurrentRegion) _ Is Nothing Then With Target.Interior If .Color = vbRed Then .Color = xlNone Else .Color = vbRed End If End With Cancel = True End If End Sub よろしくお願いします。

  • マクロ VBAについて

    sheet1に試験10、試験20、試験50というマクロがあったとします。 試験10と試験20が実行されていないと試験50のマクロを実行してもマクロが実行されない。 また試験10と試験20が実行されていたら試験50を実行したときに試験50が実行されるような VBAは可能なんでしょうか。 パソコン初心者なんで全くわからない状態です。 ちなみに下記ではだめでした。 ほんと全くわかんないです。 詳しい方どうぞよろしくお願いします。 Sub マクロ() Dim 試験10 Dim 試験20 If 試験10 And 試験20 Then 試験50 End If End Sub

  • エクセルのVBAについて教えてください!

    VBAの初心者です。 罫線に関するマクロで、以下のようなマクロを作りました。 このマクロを改造して、外枠全体に関して同じことができるように したくていろいろ試してみたのですが、どうしてもできません。 非常に初歩的な質問で申し訳ありませんが、よろしくお願い致します。 Sub 罫線右() With Selection If .Borders(xlEdgeRight).LineStyle = xlNone Then .Borders(xlEdgeRight).LineStyle = xlContinuous Exit Sub End If If .Borders(xlEdgeRight).LineStyle = xlContinuous And .Borders(xlEdgeRight).Weight = xlThin Then .Borders(xlEdgeRight).Weight = xlHairline Exit Sub Else .Borders(xlEdgeRight).LineStyle = xlNone End If End With End Sub

  • ExcelのマクロをWSHから実行させると「型が一致しません」のエラーがでます。

    WSHからExcel2000のマクロを実行させています。このマクロはセルの計算式の結果(セル(1,2))をif関数で比較するコードが入っています。 If Cells(1, 2).Value = "8月" Then hensu = 1 End If これをWSHから実行させると「型が一致しません」とエラーが出ます。 Debug.Print TypeName(Cells(1,2).Value)で型を表示させてみるとマクロを直接実行させたときはStringですが、WSHから実行させるとErrorとなっています。 なぜWSHから実行すると型がErrorとなるのかということと、解決策を教えていただければ幸いです。 ちなみにWSHでマクロを実行させている部分は以下のとおりです。 Set objExcelApp = CreateObject("Excel.Application") Set objWbk = objExcelApp.Workbooks.Open("ExcelBook.xls",True) objExcelApp.Run("ExcelBook.xls!macro1")

  • Excel VBA SelectedItems

    Excel2003のVBAで   With .FileDialog(msoFileDialogFolderPicker)      .AllowMultiSelect = True '複数選べる     If .Show =true Then       for each eachFiles in .SelectedItems(1)'←ここ         (いろいろ処理)       next eachFiles     End If   End With    という処理はよく使うと思います。ここで、 Dim tmp As variant と宣言しておいて tmp=.SelectedItems と格納しようとすると、引数は省略できないとエラーになるのですが、考え方のどこが間違っているのでしょうか? .SelectedItemsって配列だから、このやり方で格納できると考えたのですが、何がダメなのでしょうか? 原因が分かったとして、格納だけは兎に角したいのですが、どうすればいいでしょうか。 格納して、with文に縛られた状態から早く脱したいです。

  • マクロ(VBA)を中断中は、検索と置換は機能しない

    エクセル2010です。 マクロ(VBA)を中断中は、検索と置換は機能しないのでしょうか? VBAを中断させつつ、シート内を検索したいのですが、 うんともすんとも言いません。 マクロを実行してない時なら シート上に、ないならないとメッセージが表示されるはずなのですが、 マクロ中断中は表示されないのでしょうか?

  • VBAの時間設定について教えてください

    質問1: VBAで、ある一定の時間だけ指定したマクロが実行されることは出来ますか? (例えば毎日16時30分~21時だけ"マクロA"が実行されるというような) ただ、16時30分にエクセルが開いているとは限らないので、もし開始される時間に開いてない場合でも、指定した時間内に1度でも開けば必ず実行されるのでしょうか? マクロAには Sub マクロA() If sheets("1").Range("A1").Value <>"" Then msgbox"このシートは使えません" Else End If End sub という命令を作っています。 質問2: SUB() EndSub で Private Sub Worksheet_SelectionChange(ByVal           Target As Range を開くことは出来ないのでしょか。 色々やってみたのですが出来ません。 すいません。初心者なので色々本を見ながら勉強していますが、なかなかうまく出来ません。 どなたか、教えてください。      

専門家に質問してみよう