• 締切済み

[ マクロ ] エラーになったりならなかったりする

マクロがエラーになったり、ならなかったりします。 エラーメッセージは、[ 起動されたオブジェクトはクライアントから切断されました。 ] で、 エクセルが固まってしまい、タスクマネージャーから強制終了をして、 再度動かすと動きます。 また、検索をして、下記フォルダ内を削除したりしましたが、 あまり変化はないようです。 C:\Users\ユーザー名\AppData\Local\Temp 1000行×12列ほどのシート(文字と数字)が10シートほどなので、 それほど重いとも思えません… デバックでひっかかる(黄色く変わる)のは、下記コードの この部分です。 ●ひっかかる部分 Selection.Insert Shift:=xlToRight ●コード(コピーして、挿入貼り付けをしている) Dim ABC As Worksheet Set ABC = ActiveSheet Sheets("tagハリカ").Select Columns("T:W").Select Selection.copy ABC.Select Columns("F:F").Select Selection.Insert Shift:=xlToRight Range("F2").Select 3回に1度ほどひっかかるので、この部分のコードだけを別にして、 下記エラー実験用のマクロをつくりましたが、 これでも、同じエラーが出ることがあります。 ●実験マクロ1 ※ アクティブシートをaという名前に変えました Sub エラーのための実験() Sheets("tagハリカ").Range("T:W").copy Sheets("a").Range("F:F").Insert Shift:=xlToRight End Sub → 5回目くらいに、オートメーションエラーが出て、(先ほどと同じエラーメッセージ) 下記部分が黄色くなります。 Sheets("a").Range("F:F").Insert Shift:=xlToRight ☆ どのようにしたら、スムーズに動いてくれるのでしょうか… どうぞ、よろしくお願いいたします。

みんなの回答

回答No.2

#1で書き忘れましたが、 Excelの起動した状態で、タスクマネージャーで調べてみてください。 (タスクマネージャーの起動の仕方は、ネットで調べてください。) 起動していたら、立ち上がる原因を探さなくてはなりません。 もうひとつ、別のExcelが出ていませんでしょうか? 他にも、VBEditorの中の、ツール--参照設定にエラーはないでしょうか? また、COM-Addin は、ステルスで設定されていませんでしょうか? 代表例は、googleツールです。 (COM-Addinは、オプションの中のアドインのCOMアドインという項目があります。)

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

こんにちは。 >[ 起動されたオブジェクトはクライアントから切断されました。 ] この問題は、出されたマクロのコード自体の問題ではないようです。 使用環境等が書かれていませんが、原因としては、何らかのオブジェクトが、マクロ・コードとの関連性が途切れた後に、再び、オブジェクトに命令を掛けた時に出る、C言語のエラーのようです。 そもそもオートメーション・エラーが発生するというのは、エクセルを、オートメーション化させているか、別にオートメーション・オブジェクトが存在しているという状況にも感じられます。(オートメーション化というのは、Excelなどを常駐化させておくことです) また、リモートでも同様の反応が出ることもあるようです。 ここに同じような問題の対処法が書かれています。 http://support.microsoft.com/kb/319832/ja 問題が発生したときの対処法 内容は、難しいかもしれませんし、内容がズバリあたっているとも思えませんが、とりあえず、掲示しておきます。 ** 専門的な内容で分かりにくいと思いますが、「プロジェクト」というのは、モジュールの全体つまり、ブックなどについている「VBA機能」のことです。しかし、ブックそのものですと、「参照リストから Office タイプ ライブラリを削除した後、再度プロジェクトをコンパイルします。」という項目は実行できません。 ** ただ、ご質問者さんの環境に該当するか分かりません。 モジュールとしては、どこに置いてあるものでしょうか? 通常、エクセルは少し特殊で、標準モジュールに置くようになっています。 Sub エラーのための実験()   Sheets("tagハリカ").Range("T:W").copy   Sheets("a").Range("F:F").Insert Shift:=xlToRight End Sub コードとしては、個人的にはうまくないと感じますが、ここの回答者の中には、同じようなコードをチュウチョせずに書いていますから、それほど、エラーを出すものでもないように思います。 ただ、直感的に、コードをみて感ずるのは、どこかに別のコードを書いている、ということと、それが邪魔していないか、ということです。ブックを新しくしても、当該マクロだけを置いて同様になりますでしょうか?

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

関連するQ&A

  • VBAマクロエラー【オーバーフローしました。】

    以下のVBAマクロで突然エラーが出るようになってしまいました。 原因がわからず困っています。 どなたかご教授ください。 該当部分 :S = Range("B2").End(xlDown).Row エラーMrg:実行時エラー'6': オーバーフローしました ----------マクロ文---------- Sub 部担コード読み替え() Dim R_Count As Integer Dim P_Sheet As String Dim S As Integer 'データ取込用のファイルを開く Workbooks(D_Book).Activate Sheets("Data1").Select Columns("C:C").Select Selection.Insert Shift:=xlToRight Range("B2").Select S = Range("B2").End(xlDown).Row Range("C2:C" & S).Formula = "=SUBSTITUTE(SUBSTITUTE(RC[-1],""%"",""1""),""*"",""2"")" Range("C1").Value = "部担コード" Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Columns("B:B").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Range("A1").Select Sheets("Data2").Select Columns("C:C").Select Selection.Insert Shift:=xlToRight Range("B2").Select S = Range("B2").End(xlDown).Row Range("C2:C" & S).Formula = "=SUBSTITUTE(SUBSTITUTE(RC[-1],""%"",""1""),""*"",""2"")" Range("C1").Value = "部担コード" Columns("G:G").Select Selection.Insert Shift:=xlToRight Range("G2:G" & S).Formula = "=SUBSTITUTE(SUBSTITUTE(RC[-1],""%"",""1""),""*"",""2"")" Range("G1").Value = "キー" Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Columns("B:B").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Columns("E:E").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Range("A1").Select End Sub

  • マクロで切り取りしたものを貼り付ける方法

    エクセルのマクロを利用しております。 自動で作業を覚えるマクロボタンで切り取りし貼り付けたのですが マクロを実行するとデータが元の場所にも残ってしまいました。 結果としてコピーペーストとして出力されました。 私が行いたいことは、切り取りし貼り付けが行いたいのです。 (元の場所にデータは残らない) 以上よろしくお願いします。 以下は私が使用しているマクロになります。 Workbooks("2.xls").Sheets("Sheet1").Select Columns("Q:Y").Select Application.CutCopyMode = False Selection.Copy Columns("N:N").Select Selection.Insert Shift:=xlToRight Sheets("Sheet2").Select Columns("C:D").Select Application.CutCopyMode = False Selection.Copy Columns("N:N").Select Selection.Insert Shift:=xlToRight

  • Excelマクロの繰り返しの書き方

    Excelマクロで、下記のような操作を、B4行から、B100まで 繰り返したいです。 このような行を、100行まで書くのは、面倒なので、 For Nextや、Do loopを使いたいのですが、 いろいろな指南書を読んでも、セル内の書式がイマイチ理解できないので、 申し訳ないのですが、どなたか、ご指南いただけないでしょうか? Range("B4").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("B6").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 同様な問題ですが、下記を50行繰り返したい、 上記のご回答をいただければ、下記も理解できると思うのですが 下記も作れないで困っています。できれば、これも教えていただければ助かります。 Range("A5").Select Selection.EntireRow.Delete Range("A6").Select Selection.EntireRow.Delete Excelのversionは2019です。 以上、よろしくお願いします。

  • 行を挿入するマクロがうまくいきません。

    Sheets("りんご").Select Rows("1:1").Select Selection.Copy Sheets("みかん").Select Range("人").Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False End Sub というマクロは、りんごのシートにある1行をコピーして、 みかんのシートの人と名前定義してある特定の行にコピーする マクロです。この次に下のマクロを実行すると Sheets("りんご").Select Rows("2:3").Select Selection.Copy Sheets("みかん").Select Range("人").Select Selection.Insert Shift:=xlDown それまでのものが残ってしまい、行がどんどん増えていってしまいます。 いずれかのマクロを実行すればリセットされて行が増えないように コピーするにはどうすればよいでしょうか・・?

  • VBA 右端列の削除

    このたび初めて質問させていただきます。 周囲にVBAを扱うひとがいないため、初歩的(たぶん?)な質問をさせてください。 以下のようなマクロを記録したのですが、一部を編集したいと考えております。 Columns("F:H").Select Selection.Insert Shift:=xlToRight Columns("A:B").Select Selection.Cut Range("F1").Select ActiveSheet.Paste Columns("J:J").Select→J列固定ではなく右端の列と設定したい。 Selection.Cut Range("H1").Select ActiveSheet.Paste Columns("A:B").Select Selection.Delete Shift:=xlToLeft Columns("J:J").SelectをJ列固定ではなく右端の列を1列設定し切り取りがしたいのです。Range("A2").End(xlToRight).Select ActiveCell.Offset(-1,0).End(xlDown).Select と書き換えてみたのですが、うまく作動しませんでした。 どなたか教えていただけませんでしょうか?

  • エクセルのマクロ実行→オブジェクトがはみでるエラーについて

    エクセルでマクロを作り、実行したのですが、データを集計し「2」で集約する部分で「オブジェクトからはみでます」というエラーがでます。原因がわかりません。正しく実行できる方法を教えてください。 Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3, 4, 5, 6, _ 7, 8, 10, 13), Replace:=True, PageBreaks:=False, SummaryBelowData:=False Range("D2").Select   ↓この部分でエラーになります。 ActiveSheet.Outline.ShowLevels RowLevels:=2 Range("A2").Select Selection.Insert Shift:=xlDown Range("P2:R2").Select Selection.Insert Shift:=xlDown Range("B1").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy

  • offsetを使ってinsertするとエラーといわれる。

    Sheets(1).Range("I" & i).Offset(0, cprow - 1).Select Selection.Insert Shift:=xlRight 上記のようにかいてみたのですが、 エラーといわれます。どうしてでしょうか?

  • マクロでシート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

  • エクセルマクロでオートフィルタを貼り付け。VBA

    お世話になっております。 エクセルのマクロを作成したのですが、上手く機能いたしません。 オートフィルタで条件に一致するものが現在表示されている 「CSV元データをここに貼り付ける」という名前のシートが ございます。 これをシートを全選択し、そのまま 「加工1」という名前のシートに貼り付ける。 といったマクロを作成したのですが、加工1には何も貼り付けられていないようです。 下記にマクロのプログラムを記載しますので、どこを訂正すればいいのかをお教えいただければ ありがたいです。 無知で申し訳ございませんが、何卒よろしく御願いいたします。 当方が今したいのは、マクロ2なのですが、マクロ2を見ようとするとマクロ1も表示されます。 なぜ、マクロ1もでてくるのかわかりませんが、よろしく御願いいたします。 Sub マクロ1() ' ' マクロ1 Macro ' マクロ記録日 : 2011/10/31 ユーザー名 : ' ' Columns("A:D").Select Selection.Delete Shift:=xlToLeft Columns("D:D").Select Sheets("読込データ(加工1)").Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Sheets("読込データ(ORG)").Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 8 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 11 Sheets("csv元データをここに貼り付ける").Select Columns("B:D").Select Selection.Delete Shift:=xlToLeft Columns("I:P").Select Selection.Delete Shift:=xlToLeft Range("I19").Select Sheets("csv元データをここに貼り付ける").Select Rows("2:2").Select Selection.AutoFilter Selection.AutoFilter Field:=9, Criteria1:="=2", Operator:=xlAnd End Sub Sub マクロ2() ' ' マクロ2 Macro ' マクロ記録日 : 2011/10/31 ユーザー名 : ' ' Cells.Select Selection.Copy Sheets("加工1").Select Range("G12").Select End Sub

  • エクセルのマクロ

    こんばんは、宜しくお願いします。 エクセルで行を挿入し前行の数式をコピーするマクロの記録を行ったのが下記の内容です。 Sub Sounyu() ' ' Sounyu Macro ' Rows("4:4").Select Selection.Insert Shift:=xlDown Range("B3:C3").Select Selection.AutoFill Destination:=Range("F3:F4"), Type:=xlFillDefault Range("F3:F4").Select Range("G3").Select Selection.AutoFill Destination:=Range("G3:G4"), Type:=xlFillDefault Range("G3:G4").Select Range("A2").Select End Sub 最後の Range("A2").Selectを挿入した行のAのセルへ カーソルがいくようにするにはどのように変更したら 良いのでしょうか? 教えてください。

専門家に質問してみよう