コピペするExcelマクロで困っています

このQ&Aのポイント
  • エクセルのマクロの自動作成ツールを使用して、コピペのマクロを作成しましたが、動作が途中で停止してしまいます。
  • マクロの実行中に表示される選択画面に対応する方法が分からず、情報を探しても解決できません。
  • マクロを始めたばかりで、困っています。誰か教えていただけますか?
回答を見る
  • ベストアンサー

「コピペ」するExcelマクロで困っています。

 エクセルのマクロの自動作成ツールで、下のようなコピペのマクロを作ってみました。 シートをコピーして貼り付けるところまでは動きますが、その後に用済みの「ABCD.csv」を閉るところで、メッセージ画面が出て止まってしまいます。  良く見てみると、その後に開く「はい」「いいえ」「キャンセル」の選択画面(参考画面)の指示が自動では記入出来ないようで、色々調べてみましたがどうもうまくいきません。 Windows("ABCD.csv").Activate   Range("A1:B10").Select Selection.Copy Windows("DATA.xlsm").Activate   Range("A1").Select ActiveSheet.Paste   Windows("ABCD.csv").Activate ActiveWorkbook.Saved = False ActiveWindow.Close  この画面で、「いいえ」を選択するマクロを、誰か教えてください。 マクロを始めてまだ一週間なのでまったくわからず困っています、よろしくお願いします。

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

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

Excel.Application.CutCopyMode = False クリップボードにデータがあるという警告画面なので Pasteした後に上記にてクリップボードの内容をクリアすれば、 この画面は出ません。

参考URL:
http://okwave.jp/qa/q1767377.html
koojin
質問者

お礼

早速のお答えありがとうございます、上手く動くようになりました。助かりました。

関連するQ&A

  • エクセルでマクロを組み始めたばかりの者です。下記の

    エクセルでマクロを組み始めたばかりの者です。下記のようなマクロを組んでみましたが、27行目もしくは41行目のActiveSheet.Pasteで「実行時エラー‘1004‘: 変更しようとしているセルまたはグラフは保護されているため読み取り専用となっています…」というエラーメッセージが出て止まってしまいます。 しようとしている内容は、転送ボタンを押し各シートの指定セルへ一括転送(コピー)をしたいのです。 その際、転送先はシート保護をしておきたいのです。 エラーはエクセル2010で確認しましたが、職場のPCを使用するため2007や2003等他のバージョンを利用する可能性もあります。また、仕事で使用するため早急に使わなければならず焦っています。 Option Explicit Private Sub CommandButton2_Click() Call Macro2 End Sub Sub Macro2() Workbook.Open Filename:=”K:¥共有¥○○○.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”○○○.xlsm”).Activate Range(”E7”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False Workbook.Open Filename:=”C:¥Users¥Desktop¥×××.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”×××.xlsm”).Activate Sheet(”△△△”).Select Range(”AF18:AI34”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False Workbook.Open Filename:=”K:¥共有¥□□□.xlsm” ActiveSheet.Unprotect ThisWorkbook.Activate Range(”D4:G20”).Select Selection.Copy Windows(”□□□.xlsm”).Activate Sheet(”▽▽▽”).Select Range(”AF18:AI34”).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.Save ActiveWindow.Close Application.CutCopyMode = False MsgBox " 『○○○』と" & vbCrLf & "『×××』と" & vbCrLf & "『□□□』の" & vbCrLf & "規格を変更しました。" End Sub どの様に修正すれば良いのでしょうか? マクロが原因でしょうか?または他の原因があるのでしょうか? マクロ初心者のため、修正方法など具体的な詳細をお教えいただけないでしょうか。 お手数をおかけして申し訳ございませんが、よろしくお願いします。

  • エクセル マクロ for next 繰り返し

     マクロは初心者です。  以下のコピーペーストを  for ~ next で3回繰り返すコードを書くには?  変数  処理  回数指定  次に  「データ範囲の指定とコピー貼り付け」になります。   ご教示願えれば幸甚に存じます。    ◎同じ処理を二回例示します。  Range("D2").Select Windows("新規_1502.csv").Activate Range("C2:F" & 最終行).Select  Selection.Copy Windows("sinki 1502_新規.xlsm").Activate ActiveSheet.Paste ActiveSheet.Paste Range("K2").Select Windows("新規_1502.csv").Activate Range("G2:J" & 最終行).Select Selection.Copy Windows("sinki 1502_新規.xlsm").Activate ActiveSheet.Paste ActiveSheet.Paste

  • ■ エクセルマクロについてです。初級?

    エクセルのマクロでデスクトップにあるエクセルファイルを開くにはどうしたらいいのでしょうか? 現在は、エクセルファイルA.xls B.xlsという2つを開いていて、マクロを実行することができるのですが、これをA.xlsだけ開いている上体で、実行したいのです。 なので、デスクトップに置いてあるB.xlsファイルを開くコマンド?というか、関数が知りたいのですが、どうしたらいいのでしょうか? 現在はこのような感じになっております。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/9/10 ユーザー名 : ' ' ActiveCell.FormulaR1C1 = "12345" Range("G17").Select ActiveCell.FormulaR1C1 = "129876" Range("G18").Select Windows("B.xls").Activate Range("N16").Select ActiveCell.FormulaR1C1 = "8/4/2008" Range("N17").Select ActiveWorkbook.Save Range("O16").Select ActiveWorkbook.Save ActiveWindow.Close End Sub

  • エクセル・マクロでグラフを最背面に移動させたい

    エクセルのグラフを3つピッタリと重ねて表示しています 後ろのグラフを選択する時「最背面に移動」させてますが これをマクロにしたいです とりあえずマクロの記録でしてみたら Sub Macro1() ActiveSheet.ChartObjects("グラフ 7").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 2").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select End Sub と出来たのですが、マクロの実行そしてみると3列目の Selection.ShapeRange.ZOrder msoSendToBack の所で、 「実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしてません」 となってしまいます、どうすればよいのでしょう ボタンを押したら最前面のグラフが最背面に移動するようにしたいのですが難しいのでしょうか

  • エクセル マクロ データがある範囲を判定

    エクセル2010を使っています。 以下の様なマクロでコピーペーストを行っています。 Sub ボタン5_Click() Range("DM1:DO78952").Select Selection.Copy Windows("book2.xlsm").Activate Range("A1").Select ActiveSheet.Paste Windows("book1.xlsm").Activate End Sub このマクロでは範囲が指定されていますが、実際のデータは行単位で増減しますので、これを DM~DO列のデータがある行を判定し、全て選択しコピーするにはどうすれば良いでしょうか? (増減は必ず行単位、DM列にデータがあれば、必ずDO列まで有ります。) 詳しい方、よろしくお願い致します。

  • Excelマクロを削除するマクロについての質問です。

    Excelマクロを削除するマクロについての質問です。 現在Excel2003で、記入に便利なようにマクロを使って「パソコンボランティア活動報告書」(以下"活動報告書")を作っています。 この活動報告書をセキュリティ警告(マクロを有効にする等)が出ないようにしてホームページに載せたいので、私なりに「新しいマクロの記録」を使って、「マクロ削除」のマクロを作ってみました。 しかしこれでは今までのマクロは削除されますが、「マクロ削除」マクロが残ってしまいます。 今までのマクロはもちろんのこと、「マクロ削除」マクロを消すためにはどうすればいいのでしょうか? Sub マクロ削除() ' ' マクロ削除 Macro ' ' ActiveSheet.Unprotect ActiveWindow.SmallScroll Down:=9 Range("Q27:R27").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-21 Sheets("リスト項目").Visible = True Application.DisplayAlerts = False Sheets("リスト項目").Delete Cells.Select With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17").Select Range("C15").Activate ActiveWindow.SmallScroll Down:=9 Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41"). _ Select Range("C28").Activate ActiveWindow.SmallScroll Down:=15 Range( _ "E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41,C42:AG44"). _ Select Range("C42").Activate Selection.ClearComments ActiveWindow.SmallScroll Down:=-36 Range("AC4:AE4,F5:I5,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7").Select Range("O7").Activate Selection.ClearContents Range("E4:P4").Select ChDir "C:\work" ActiveWorkbook.SaveAs Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Range("E4:P4").Select End Sub

  • エクセルマクロで「今作業をしているファイルを指定す

    る方法について」 上書きのマクロについて質問をしましてxls88さんからお答えいただき無事うまくいきました。そこで次の場合どうすればよういかご教授お願いします。 Sub 全体名簿へ2組() ' ' 全体名簿へ2組 Macro ' ' Windows("全体名簿.xlsm").Activate Sheets("★生徒名簿").Select If MsgBox("B列で前のクラスの生徒の次のセルを選択していますか?", vbYesNo) = vbYes Then Range("B" & ActiveCell.Row, "n" & Range("B65536").End(xlUp).Row).ClearContents Else: Worksheets("★生徒名簿").Activate Windows("2組.xlsm").Activate Sheets("★生徒名簿").Select 開始 = Range("r3").Value 終了 = Range("s3").Value Range("B" & 開始 + 1 & ":n" & 終了 + 1).Select Selection.Copy Windows("全体名簿.xlsm").Activate Sheets("★生徒名簿").Select ActiveSheet.Paste End If End Sub 上記の文で「Windows("2組.xlsm").Activate」でここを今作業しているファイル名を使わずに「2組」と特定しない方法です。なぜかというと全体名簿のフィルをコピーして1組から3組までのクラスに分けるからです。2組と特定してしまうと1,3組は使えなくなってしまうからです。何かいい方法があったらお願いします。

  • マクロを使ったコピペがうまく動作しない。

    あるデータを転記用のブック(月毎にシートが分かれています。シートの内容は同一)に貼り付ける処理を行うため、下記のようなマクロを組んだのですが、何故か貼りつきません。処理終了時には、転記元ブック(シート)で最終処理の範囲(5番目のB287)を選択しています。一体何がいけないのでしょうか? データはA1からPまでで毎月可変しています。 また、転記用ブックが12枚あるため、月を指定してから貼り付けたいのですが、どのようにすればよいでしょうか?(下記は直接シ-トを指定しました) Sub test() Dim 最終行 As Integer '-------------------------------------------- 開始 Windows("21-12.xls").Activate 最終行 = Range("p65536").End(xlUp).Row Sheets("1").Range("A1:p" & 最終行).Select Selection.Copy Windows("転記.xls").Activate Sheets(12月).Select Range("B1").PasteSpecial Paste:=xlPasteValues '-------------------------------------------- 1 Windows("21-12.xls").Activate 最終行 = Range("p65536").End(xlUp).Row Sheets("2").Range("A1:p" & 最終行).Select Selection.Copy Windows("転記.xls").Activate Sheets(12月).Select Range("B83").PasteSpecial Paste:=xlPasteValues '-------------------------------------------- 2 Windows("21-12.xls").Activate 最終行 = Range("p65536").End(xlUp).Row Sheets("3").Range("A1:p" & 最終行).Select Selection.Copy Windows("転記.xls").Activate Sheets(12月).Select Range("B157").PasteSpecial Paste:=xlPasteValues '-------------------------------------------- 3 Windows("21-12.xls").Activate 最終行 = Range("p65536").End(xlUp).Row Sheets("4").Range("A1:p" & 最終行).Select Selection.Copy Windows("転記.xls").Activate Sheets(12月).Select Range("B227").PasteSpecial Paste:=xlPasteValues '-------------------------------------------- 4 Windows("21-12.xls").Activate 最終行 = Range("p65536").End(xlUp).Row Sheets("5").Range("A1:p" & 最終行).Select Selection.Copy Windows("転記.xls").Activate Sheets(12月).Select Range("B287").PasteSpecial Paste:=xlPasteValues --------------------------------------------- 5 End Sub 

  • エクセル マクロ こんな事出来ますか?

    エクセル2010を使っています。 ボタンクリックでAと言うファイルをオープンさせているのですが、使うシーンで元々開いていたり、閉じていたりします。 それで、目的のファイルが開いていた場合は次の動作に移りたいと思います。 現在のマクロは以下の様なものです、これでもちろん動作しています。 Sub ボタン15_Click() Workbooks.Open "目的のファイルの場所" Windows("A.xlsm").Activate Sheets("Sheet4").Select Range("aa3").Select End Sub Aのファイルが開いていない場合、Aを開く。 Aのファイルが開いている場合 Windows("A.xlsm").Activate を実行したいと言う事です。 詳しい方、よろしくお願い致します。

  • Excel2007のマクロでマクロを実行したところ、エラーが出てしまい

    Excel2007のマクロでマクロを実行したところ、エラーが出てしまいました。どうすればよいでしょうか? 実行時エラー'1004'「RangeクラスのSelectメソッドが失敗しました」 Range("テーブル1[#All]").Selectでエラーになります。 マクロの記録を使っただけなので、どう直せばよいのかさっぱりわかりません。 どうかよろしくお願いします。 Range("A5").Select ActiveWindow.SmallScroll Down:=12 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 ActiveWindow.SmallScroll Down:=-12 Columns("L:P").Select Selection.Delete Shift:=xlToLeft ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("A5").Select ActiveWindow.SmallScroll Down:=30 Range("A5:L55").Select ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$5:$L$55"), , xlYes).Name = _ "テーブル1" Range("テーブル1[#All]").Select ActiveWindow.SmallScroll Down:=-36 Range("テーブル1[[#Headers],[列5]]").Select ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort.SortFields.Add _ Key:=Range("テーブル1[[#All],[列5]]"), SortOn:=xlSortOnValues, Order:= _ xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("ID.01").ListObjects("テーブル1").Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveSheet.ListObjects("テーブル1").Range.AutoFilter Field:=12, Criteria1:= _ Array("condition", "congruent", "control", "experiment", "="), Operator:= _ xlFilterValues ActiveWindow.SmallScroll Down:=-6 End Sub

専門家に質問してみよう