• ベストアンサー

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

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

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 マクロ自体は、以下のようにすればよいのです。 Sub リセット1R() With Worksheets("Sheet1")  .Range("A2:D5000,E2:F5000,I2:U5000").ClearContents End With End Sub オートメーションエラーの"要素が見つかりません" は、 OLE オートメーション から出てくるものですから、他に、何かツールを使っていますか。 ActiveXコンポーネントが、登録されていないという意味だったと思います。 例えば、Rakuten RSS など。 違うシートモジュールに入れると、 実行時エラー '1004': "アプリケーション定義またはオブジェクトエラーです。" 等が返ります。なお、マクロは、通常、該当するシートモジュールに入れるか、標準モジュールに入れるようにします。また、該当するシートがなければ、インデックスがないと返ります。

miyabi08
質問者

お礼

お礼が遅くなって申し訳ありません。 参考にさせていただきます。 回答ありがとうございました。

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

その他の回答 (2)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

シート内ではなく、標準モジュールに記述することをオススメします。

miyabi08
質問者

お礼

お礼が遅くなって申し訳ありません。 参考にさせていただきます。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • denbee
  • ベストアンサー率28% (192/671)
回答No.1

Sheet1以外のシートから実行したとのことですが、 「Sheet1」自体は存在していますか?

miyabi08
質問者

補足

存在しています。 ここでの「Sheet1」は、プロパティのオブジェクト名ではなく、 Name(シート名)のことですよね。

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

関連するQ&A

  • マクロの実行とコマンドボタン

    office2000、WIN98SEです。 マクロの記録でマクロを作成しました。 これをコマンドボタンにコピペして実行するとエラーになります。マクロの実行から動かすとなんの問題もありません。なにがいけないんでしょう。教えてください。 ちなみにやりたいことは、複数のシートの同じセルを一気にクリアにしたいです。 記録したマクロは以下の通りです。宜しくお願いします。 Sheets(Array("用紙(1)", "用紙(2)", "用紙(3)", "用紙(4)")).Select Sheets("用紙(1)").Activate Range("B9").Select ActiveWindow.SmallScroll Down:=36 Range("B9:C58").Select Selection.ClearContents Range("F9").Select ActiveWindow.SmallScroll Down:=36 Range("F9:G58").Select Selection.ClearContents Range("I9").Select ActiveWindow.SmallScroll Down:=36 Range("I9:I58").Select Selection.ClearContents Sheets("用紙(1)").Select Range("B9").Select End Sub

  • マクロでシート2~6のデータをシート1に転記したい

    マクロでシート2~6のデータをシート1に転記したいです。 シート2~6のデータを シート1に順番に転記したくてマクロの記録を利用して作成しました。 シート2~6は列は同じですが行数は異なります。 また行数は作業の都度異なります。 同じ記述が繰り返されているので もう少し記述が短くできるのではと思うのですが どうすればいいでしょうか? Sub データ更新() 'シート1の前回データをクリア Sheets("シート1").Select Range("A2:Q2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("A2").Select Sheets("シート1").Select Range("A1").Select Sheets("シート2").Select Range("A1").Select 'ヘッダーも合わせて取得 Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート3").Select Range("A2").Select 'データのみ取得 Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート4").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート5").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select Sheets("シート6").Select Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("シート1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.End(xlDown).Select Selection.Offset(1, 0).Select End Sub

  • エクセル・マクロ CSVファイルの読込方法と改行

    マクロがうまく作成出来ずにいます。 是非、教えて頂けないでしょうか、宜しくお願い致します。 マクロでやりたい事は二つあります。 (1)あるシステムよりRドライブ内にデータを落とし、その後エクセルシートへ貼り付ける作業を行っているのですが、この作業をマクロで出来るようにしたいです。 ただ、データを落とした段階では拡張子表示にしても何もついていないデータになっていますが、中身からしておそらくCSV形式のデータだと思います。 (2)シート(1)、(2)、(3)にあるデータをシート(4)に順番に貼り付けていきたいのですが、(1)のシートのデータと(2)の間に空白の行を一行、(2)と(3)の間にも空白の行を一行としていきたいのです。 (2)に関しては途中までマクロを書いたのですが、エラーが出てうまくいきません。 作成したマクロは以下です。 Sheets("summary").Activate Range("A3").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.ClearContents 'AUD シート Sheets("AUD").Activate ActiveSheet.Range("A1").Select ActiveSheet.Range("A1:P1").Select ActiveSheet.Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("summary").Activate ActiveSheet.Range("A3").Select ActiveSheet.Paste With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With Application.CutCopyMode = False ActiveCell.Select ActiveSheet.Range(Selection.End(xlDown)).Select Cells.Replace What:=Chr(10), Replacement:="<br>" 最後の数行でエラーが出ます。 マクロの初心者でこんな事もわからないのかと思われるかもしれませんが、 どうぞ宜しくお願い致します。

  • 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マクロエラー

    下記のマクロを実行すると、Sheets(M_KAKOBA(count)).Selectのロジックでインデック スが有効範囲にありません。というエラーメッセージがでます。 エクセルのツール→オプション→全般→新しいシートの数を2から3に変更すると エラーは発生しないのですが、エクセルのツール→オプション→全般→新しいシートの数を2 のままでエラーを出さないようにするには、ロジックを変更すればできるのでしょうか? ロジックの追加方法を教えてください。 Sub 送信() '変数の設定 Dim work, hensu, i, j Windows("加工品.xls").Activate work = Sheets("masta").Cells(3, 6).Text 'シート名の変更 Windows(F_NAME).Activate Sheets(M_KAKOBA(count)).Select ActiveSheet.Name = work Windows("加工品.xls").Activate Sheets(work).Select i = 5 Do i = i + 1 hensu = Cells(i, 5) Loop While hensu <> "" Range(Cells(1, 1), Cells(i + 1, 33)).Select Selection.Copy Windows(F_NAME).Activate Sheets(work).Select Range("a1").Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A2").Select End With Selection.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic ' '行の高さ If Worksheets(work).AutoFilterMode = False Then Range(Cells(5, 1), Cells(i + 1, 31)).Select Selection.AutoFilter End If End Sub

  • エクセルVBA マクロの記録をコマンドボタンにコピペしても動かないのはなぜ?

    マクロを記録した以下は問題なく動くのですが、 Sub Macro1() Sheets("AAA").Select Range("A39:AQ39").Select Selection.Copy Sheets("BBB").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub これをシート”BBB”のコマンドボタンに下記のようにコピペすると Range("A39:AQ39").Selectでエラーが発生し動きません。 どうすれば動くようになるのでしょうか? また、どうしてボタンだとコピペするだけではいけないのでしょうか? Private Sub CommandButton1_Click()    ここにコピペ End Sub

  • エクセルのマクロについて

    エクセル97でマクロを組んで下記作業を行いたいと考えていますが(実際にやりたい事から抜粋した内容です)、不具合が起こっています。 ~やりたい事~ コマンドボタンを押すとあるシートのセルをコピーして、違うシートに貼り付ける。 ~不具合内容~ (1)普通にマクロを実行すると問題ないが、(2)コマンドボタンを使用するとエラーが起こる。 エラー内容は、 「実行時エラー'1004' RangeクラスのSelectメソッドが失敗しました。」 と言う内容です。 ~(1)のVB表記~ Sub Macro1() Sheets("sheet1").Select Range("A1").Select Selection.Copy Sheets("sheet2").Select Range("A1").Select ActiveSheet.Paste End Sub ~(2)のVB表記~ Private Sub CommandButton1_Click() Sheets("sheet1").Select Range("A1").Select (←ここでエラーが発生します) Selection.Copy  Sheets("sheet2").Select Range("A1").Select ActiveSheet.Paste End Sub ~質問事項~ 1)(2)の表記の何が原因でエラーが起こっているのでしょうか? 2)エラーが起きない為にはどのようにしたら良いでしょうか?

  • セル変更2回目以降マクロが走らない

    office2010 セル値変更でマクロ実行の件で質問です。 macroというシートのA11セルがプルダウンリストになっていて、その値を変更したらマクロ実行という構成を作成しました。 下記はmacroというシートに記載したマクロ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$11" Then Exit Sub Calculate Macro4 End Sub 下記は標準モジュールに記載したマクロ Sub Macro4() ' 'macroシートB11に表示されるNo.で抽出 Application.EnableEvents = False Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Sheets("Sheet1").Visible = True Sheets("Sheet2").Visible = True Sheets("Sheet3").Visible = True Sheets("Sheet4").Visible = True Sheets("work").Visible = True Sheets("Sheet3").Select Cells.Select Selection.ClearContents Selection.ClearContents Sheets("Sheet2").Select Cells.Select Selection.ClearContents Selection.ClearContents Sheets("Sheet1").Select Cells.Select Selection.AutoFilter Selection.AutoFilter ActiveSheet.Range("$A:$BA").AutoFilter Field:=3, Criteria1:=Sheets("macro").Range("B11") Sheets("kisyu_work").Select Cells.Select Selection.ClearContents Sheets("Sheet1").Select Columns("F:F").Select Selection.SpecialCells(xlCellTypeVisible).Select Application.CutCopyMode = False Selection.Copy ActiveWindow.ScrollWorkbookTabs Position:=xlLast Sheets("kisyu_work").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "kisyu_work!R1C1:R1048576C1", Version:=xlPivotTableVersion14). _ CreatePivotTable TableDestination:="", TableName:= _ "ActiveSheet.Name", DefaultVersion:=xlPivotTableVersion14 Cells(1, 1).Select With ActiveSheet.PivotTables("ActiveSheet.Name").PivotFields("V_KISYU_CD") .Orientation = xlRowField .Position = 1 End With Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row - 2).Select ' Selection.Copy ActiveWindow.ScrollWorkbookTabs Position:=xlLast Sheets("kisyu_work").Select Range("B1").Select ActiveSheet.Paste ' Range("C1:C" & Range("B" & Rows.Count).End(xlUp).Row).Value = "=INDEX(M_KISYU!C[5],MATCH(RC[-1],M_KISYU!C,0))" Sheets("macro").Select End Sub A11セルの値を変更するとMacro4は実行されます。 しかしながら、2回以上続けてA11の値を変更するとMacro4が動作しません。 なぜなのでしょうか? なお、プルダウンリストの構成をやめると、連続してA11セル値変更しても動作します。

  • エクセル マクロの記憶で記憶する自動マクロの編集

    こんにちわ。 エクセルで、マクロを記憶させて実行しています。 この自動で操作をしてくれるマクロを、50回繰り返したいのですが、 マクロの編集で文字を出して、この文字に何かを付け足すことで 50回繰り返すことはできますでしょうか? 以下、文字を出した画面です。(適当な操作を記憶させただけです) Sub あき() ' ' あき Macro ' マクロ記録日 : 2011/8/20 ユーザー名 : user ' ' Range("A1").Select Selection.ClearContents Sheets("RESULT_B(1)").Select Selection.AutoFilter Field:=1, Criteria1:="=", Operator:=xlAnd Range("A3").Select Sheets("Sheet1").Select Range("C1").Select Selection.Cut Sheets("RESULT_B(1)").Select Range("A3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("D1").Select Selection.Cut Sheets("RESULT_B(1)").Select Range("H3").Select ActiveSheet.Paste Sheets("Sheet1").Select End Sub このすべての作業を繰り返したいのですが、 お手数ですが、ご存知の方、 どこにどういう言葉を入力したらよいのか教えて頂けませんでしょうか。 当方素人の為、訳の分からない文章になってしまい 申し訳ありません。 よろしくお願い致します。

  • ExcelのVBAです。

    先日お答えいただいたVBAなんですが、 Sub Macro1() Sheets("Sheet1").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet3").Select Range("A1").Select ActiveSheet.Paste Selection.End(xlDown).Select Application.CutCopyMode = False Do Selection.Insert Shift:=xlDown Selection.End(xlUp).Select Loop Until ActiveCell.Address = "$A$1" End Sub というのを使用させて頂いてます。 これを、コピー先のものを上書きせずに、コピーされたものがあれば表示させるといった風に出来ないでしょうか? 例  A    A 1 a 1 2 b → 2あ 3 c 3 右から左に一行間隔で別シートに表示させたいのですが、  A  1 a 2 あ 3 b 4 5 b という結果にしたいのです。 拙い文章で申し訳ないのですが、教えて頂きたいです。

専門家に質問してみよう