• ベストアンサー

Excel VBAでオートメーションエラーがでる

いつもお世話になっております。 Sheets("修正シート").Select Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Sheets("箇所見る").Select Range("A1").Select 上記のところで実行エラー オートメーションエラーです。 とメッセージがでます。 何がいけないのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

シートモジュールに書いていませんか? シートが削除された瞬間に実行中のマクロが消滅するので、以後の構文は実行不可能になります。 標準モジュールに記述して下さい。

cocoku
質問者

補足

そうです。シートモジュールに記入しています。 しかしながら、sheet1に記入してsheet2を削除するので関係ないのでは・・・。 具体的には、sheet1をコピーしてsheet1(2)を修正シートと変更して そのシートを削除するのですが・・・。 sheet1のコードもコピーされていますので、実際実行されるのは修正シートと言うことになりますか???! ためしてみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELのVBAについて

    マクロのボタンで内容を削除する様に設定した所、 Dim re As Integer Sheets("投入シート").Select re = MsgBox("入力データをクリアします。" & vbCrLf & vbCrLf & "よろしいですか?", vbOKCancel, "クリア確認") If re <> vbCancel Then Sheets("投入シート").Select ActiveSheet.Unprotect Range("a1:c30").Select Selection.Copy Application.CutCopyMode = False Selection.Copy Sheets("work").Select Range("A1").Select ActiveSheet.Paste Sheets("投入シート").Select ActiveSheet.Unprotect Range("c4:c30").Select Selection.ClearContents Range("f31").Select Selection.Copy Range("c9").Select ActiveSheet.Paste Range("f33").Select Selection.Copy Range("c11").Select ActiveSheet.Paste Range("f32").Select Application.CutCopyMode = False Selection.Copy Range("c14").Select ActiveSheet.Paste Range("c4").Select Application.CutCopyMode = False 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Sheets("投入シート").Select Range("c4").Select End Sub この様に入力したのですがセルのC11の計算式だけセル番号が消えてしまいます。 どうしてでしょうか?ご指導をお願いします。

  • エクセル2000でのVBAについて

    下記のVBAを書いているのですが、3つのIF文を1つに まとめたいのですが教えてください。 If Range("E16") = "申請者" Then Sheets("ログイン").Select Sheets("報告票").Select ActiveSheet.Unprotect Range("M3:U7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("E16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("D3:L7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("F16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("BS3:CA7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select end if end if end if

  • エクセル VBA 繰り返し コピー貼り付け

    以下を繰り返し作業をOffsetを使用して行いたいのですがどうすればいいでしょうか? Sheets("Sheet1").Select Range("A1:C1").Select のA1:C1以下へA1000:C1000ぐらいあります。 Sheets("Sheet2").Select Range("G1").Select は貼り付けたセル3つの数字の組み合わせで公式に使う計算期間がまちまちですので公式を張り付けたり出来ません。 D1の解を heets("Sheet1").Select Range("D1").Select に貼り付けてA1:C1以下1000までの結果を評価出来るようにしたいのですが! ' Macro1 Macro Sheets("Sheet1").Select Range("A1:C1").Select Selection.Copy Sheets("Sheet2").Select Range("D1").Select ActiveSheet.Paste Range("G1").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D1").Select ActiveSheet.Paste Range("A2:C2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("D1").Select ActiveSheet.Paste Range("G1").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D2").Select ActiveSheet.Paste Range("A3:C3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("D1").Select ActiveSheet.Paste Range("G1").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D3").Select ActiveSheet.Paste End Sub よろしくおねがいします。

  • Excel VBAでのシートの削除について

    Excel VBAで、シート上に配置されたボタンをクリックすることで、メッセージを出さずにそのシートの削除をしたいと思っています。 サンプルとして、シート上(例えばSheet1)にボタンを1個配置し、 ------------------------------------------------------- Private Sub CommandButton1_Click() Application.DisplayAlerts = False Delete Application.DisplayAlerts = True End Sub ------------------------------------------------------- のようにすると、オートメーションエラーが起きます。 そこで、 Application.DisplayAlerts = True をコメントアウトしてやれば実行はできるのですが、その後別のシートで処理を行う場合には、再度メッセージを表示してほしいと思っています。 ためしに、Sheet1削除後にアクティブになるSheet2に次のようなコードを記述しました。Sheet1同様、シート上にボタンを1個配置しています。 ------------------------------------------------------- Private Sub CommandButton1_Click() MsgBox Application.DisplayAlerts End Sub Private Sub Worksheet_Activate() MsgBox "次に出るメッセージはアクティブ直後のDisplayAlerts設定。" MsgBox Application.DisplayAlerts Application.DisplayAlerts = True MsgBox "次に出るメッセージは変更後のDisplayAlerts設定。" MsgBox Application.DisplayAlerts End Sub ------------------------------------------------------- こうすれば、Sheet1削除後、アクティブになった直後はDisplayAlertsがFalse。その後設定変更してTrueになるかとおもったのですが、結果はFalseでした。しかしその後、ボタンをクリックするとTrueが返ってきました。 いろいろ調べましたが、なぜこのような結果になるのかわかりません。よろしくお願いいたします。

  • VBA エラー表示についての原因がわかりません

    お世話になります。 現在、社内集計作業のため下記のようなマクロを組みました。 条件として保存動作をすると実行…ということで諸々調べた結果、VBE→ThisWorkBookから指定のプロシージャを選んで、その中にコードを記入する、ということが多数でしたので、それに倣いました。 ところが、いざ下記コード内容で実行しようとすると「インデックス範囲が有効ではありません」とストップをかけられる上、最初の新規ワークブック追加~コピペすら正しく行われません。 標準モジュールでは正しく実行してくれるのですが、このようなケースでエラーになる理由がよくわかりません。 つきましては、下記コードがエラーとなる理由、そして可能であればどのように修正をすればよいかお教えください。 ご面倒をおかけしますが、よろしくお願いいたします。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ' Macro2 Macro ' ' Columns("A:A").Select Range("A:FU").Select Selection.Copy Workbooks.Add ActiveSheet.Paste Columns("FU:FU").Select Application.CutCopyMode = False Selection.Copy Columns("FT:FT").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("FT:GF").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Columns("A:A").Select Range(Selection, Selection.End(xlToRight)).Select Selection.NumberFormatLocal = "G/標準" Sheets("Sheet3").Select Application.DisplayAlerts = False 'メッセージを出さない ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = False 'メッセージを出さない Sheets("Sheet2").Select ActiveWindow.SelectedSheets.Delete Range("A1").Select Columns("A:A").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks _ :=False, Transpose:=False ChDir "\\sv-qlikview.dmsinc.local\Documents\社内実績集計画面\読込用(仮)" Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.SaveAs Filename:= _ "\\sv-qlikview.dmsinc.local\Documents\社内実績集計画面\読込用(仮)\第○営業部.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ActiveWindow.Close End Sub

  • Excelマクロについての質問です。

    Excelのマクロについての質問です。 マクロについての質問です。 以下のようなマクロを作成しました。 このマクロを動作させているのはこのマクロを作成したファイル上です。 Sub Macro9() Dim WBA As Workbook Dim WBB As Workbook Dim WSA As Worksheet Dim WSB As Worksheet Set WBA = Workbooks("A") Set WBB = Workbooks("B") Set WSB = WBB.Worksheets("1") For i = 100 To 3000 Step 20 Worksheets.Add Before:=Worksheets("Sheet1") Dim k As String k = i ActiveSheet.Name = (k / 100) Set WSA = WBA.Worksheets(k / 100) WSB.Range("A1:AY30").Copy Destination:=WSA.Range("A1") WSA.Range("D4:I30").Clear WSA.Range("Q4:V30").Clear WSA.Range("AD4:AI30").Clear WSA.Range("AQ4:AV30").Clear Next i Application.DisplayAlerts = False Sheets("Sheet1").Delete Application.DisplayAlerts = True Application.DisplayAlerts = False Sheets("Sheet2").Delete Application.DisplayAlerts = True Application.DisplayAlerts = False Sheets("Sheet3").Delete Application.DisplayAlerts = True End Sub そこで質問ですが、このマクロを作動させると何のエラーの表示もなく最後まで動作は完了します。 ですが、シートの作成は30まで作成できてもその後のセルのコピー&ペーストはなぜかシート6.8までしかできていません(7~30までのシートはシート作成はできているのですがコピペのみが実行されず空白のままになっています。) シートもコピペも両方ともシート30まで完了するにはどの点を改善すればいいのでしょうか? 知恵が足りずどうしても直す事が出来ません。 長文申し訳ございませんが是非皆さまのお知恵をお貸しください。 宜しくお願い致します。

  • VBA オートメーションエラー(要素が見つかりません)

    というエラーが出ます。コードは以下の通りです。 エラーの意味と文法上、おかしい箇所があればお教えください。 尚、今まで使用していたマクロで、今日初めてエラーが出ました。 「Sheet1」以外のシートからの実行です。Excel2000です。 よろしくお願いします。 Sub リセット1() Sheets("Sheet1").Select Range("A2:D5000,E2:F5000,I2:U5000").Select Range("A2").Activate Selection.ClearContents End Sub

  • エクセル2007マクロ シート間のセルコピー

    [Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • VBAでの値のコピーのエラーについて

    お世話になっております。 現在、マクロを作成し、実行すると毎回ある部分で エラーが生じ、にっちもさっちも行かない状態です。以下の内容を記述してあります。 ********************************************** Sheets("C").Select Cells.Select Selection.Copy Sheets("A").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteValues 対象列 = InputBox("対象列を入力") Sheets("A").Select If 対象列 = "L" Then Range("L12:L243").Select Selection.Copy Sheets("B").Select ActiveSheet.Unprotect Password:="1111"   ↓この部分が毎回エラーをおこしています Range("L12").PasteSpecial Paste:=xlPasteValues   ↑この部分が毎回エラーを起こしています ActiveSheet.Protect Password:="1111"   Application.DisplayAlerts = False Worksheets("A").Delete *********************************************** 実施したい事は、”A”とあるシートより、シート”B”に値を貼り付けるというものですが、常に貼り付けの部分でエラーが生じております。エラーが生じた際に、表示されるエクセルのヘルプには、以下のような事がかかれているのですが、シートBには値が入力されていないことが原因なのでしょうか? *****以下エクセルのエラーメッセージ************************ 実行時エラー”1004” RangeクラスのPastespecialメソッドが失敗しました************************ *****以下エクセルのヘルプ内容************************ 適用された状況ではメソッドを使用できません。特に、Range オブジェクトの一部のメソッドでは、対象となる範囲にデータが入力されている必要があります。範囲にデータが入力されていない場合は、メソッドの実行に失敗します。 お忙しい所申し訳ありませんが、宜しくお願いいたします。

  • VBAでEXCELのワークシートを削除時に警告メッセージをでないようにしたい。

    ACCESSのVBAでEXCELのワークシートを削除時に警告メッセージをでないようにしたいのですが、 ネットを参考に下記のようにしたのですが、  Application.DisplayAlerts = False  ActiveSheet.Delete  Application.DisplayAlerts = True DisplayAlertsが反転してメソッドまたはデータメンバが見つかりません。とエラーメッセージがでます。 ご存知の方宜しくお願いします。

このQ&Aのポイント
  • EPSON EP-813Aの手差し印刷で黄色がズレる問題について質問させていただきます。
  • インク交換後、手差し印刷のみ黄色ずれが発生し困っています。
  • 手差し印刷の際、紙やサイズに関わらず黄色がズレる問題が発生しています。トレイからの自動排出では問題ありません。
回答を見る