• ベストアンサー
  • すぐに回答を!

エクセル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]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数910
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.2
  • mar00
  • ベストアンサー率36% (158/430)

Sub siken() Application.ScreenUpdating = False ここを追加 Sheets("Sheet1").Select 間の処理 Application.ScreenUpdating = True  ここを追加 End Sub のようにすれば[Sheet1]を表示しないと思います。 別の方法もありますが、これが一番わかりやすい方法だと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速ご回答ありがとうございます! すごい!できました!! とても分かりやすく簡単な方法で感動です。 本当にありがとうございました。

関連するQ&A

  • エクセルマクロ 繰り返して、別のシートへコピーしたい

    エクセルマクロ 繰り返して、別のシートへコピーしたい マクロ初心者のため、やり方が全くわかりません。 どなたか教えてください。 やりたいことは、 コピーするシートはあらかじめ作成しています。 簡素化の方法がわからないので、 とりあえず自分で作ってみたものが下にあるものです。 繰り返す方法がわからないので、 どなたか教えてください。 よろしくお願いします。 以下、作成したマクロです。 1行目から10行目まで繰り返したくて、 1行目から2行目のセルの移動の差は10行目までかわりません。 '1行目 Sheets("Sheet1").Select Range("B14:C14").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Sheets("Sheet1").Select Range("B15:C17").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B1").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False '2行目 Sheets("Sheet1").Select Range("B18:C18").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Sheets("Sheet1").Select Range("B19:C21").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B2").Select Range("B2").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False

  • エクセル 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 よろしくおねがいします。

  • マクロについて教えてください

    マクロの超初心者です。 数式を入力しているのではなく、配付物をエクセルで作成しているのですが、同じもの(氏名や項目は違いますが)を100枚ほど作成しているのでマクロを・・・と思ったのですがやり方が全く分かりません。 sheet1からsheet2に下記のようにデータを写したいのですが、やり方を教えてください。 ●氏名が入力されています sheet1(A9) → sheet2(C2) sheet1(E9) → sheet2(C5) sheet1(I9) → sheet2(C8) ●項目1 sheet1(A8) → sheet2(E3) sheet1(E8) → sheet2(E6) sheet1(I8) → sheet2(E9) ●項目2 sheet1(A18~D18の結合セル) → sheet2(E2) sheet1(E18~H18の結合セル) → sheet2(E5) sheet1(I18~L18の結合セル) → sheet2(E8) と反映させたいのですが、250行あるのですが、 簡単にマクロで出来ないでしょうか?? ちなみに↓コレが上記の内容で作ってみたものです。 わかりずらい質問でスイマセン。 Range("A9").Select Selection.Copy Sheets("sheet2").Select Range("C2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E3").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E6").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E9").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A18:D18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E18:H18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I18:L18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub

その他の回答 (1)

  • 回答No.1

Selectしなければいいのです。 Sub sample()   With Sheets("Sheet1")     .Range("A1").Copy Sheets("Sheet2").Range("A1")     .Range("B3").Copy Sheets("Sheet2").Range("B3")     .Range("B6:D6").Copy Sheets("Sheet2").Range("B6")   End With End Sub こんな感じに。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速ありがとうございます! もうひとつ教えていただいても良いでしょうか? 「数式」を貼り付ける場合はどのようにすればよいのでしょか。

質問者からの補足

解決しました。 ありがとうございました。

関連するQ&A

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

  • マクロで住所録を抽出して、別シートにコピーするのに

    マクロで住所録を抽出して、別シートに抽出したデータをバラバラに貼り付けたいです。 当方、マクロ初心者なので、分かりやすく教えてください。 シート1『入力シート』、シート2『印刷シート』、シート3に『客先住所録』とあって、今までは住所録のデータをセル1つずつをコピーしてシート1の入力シートに貼り付けて、シート1から2へは関数の=セル番号として飛ばして、シート2の印刷シートを印刷していました。 せっかく、住所録があるからなんとか簡単にならないかと言われて、初心者ながらマクロを作成しました。住所録のオートフィルタで抽出まではうまく出来たのですが、入力シートにコピー貼付が作成時に抽出した住所録は出来ますが、それ以外の住所で抽出すると出来ません。 どうすれば、いいのかご教授願います。 シート3『客先住所録』 A1 チェック A2 1 A3 B3 C3 D4 E4 F4 1又は空白 会社名 〒 住所 FAX TEL 以下70件ほど住所録入力あり。 シート1『入力シート』 G4に〒 G5に住所 K6に電話番号 Y6にFAX G7に会社名 にコピーしたいです。 自分が作成したマクロは Range("A3:F70").Select Range("A3:F48").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("A1:A2"), Unique:=False Range("B7").Select Selection.Copy Sheets("入力シート").Select Range("G7:AF7").Select ActiveSheet.Paste Sheets("客先住所録").Select Range("C7").Select Application.CutCopyMode = False Selection.Copy Sheets("入力シート").Select Range("I4:AH4").Select ActiveSheet.Paste Sheets("客先住所録").Select Range("D7").Select Application.CutCopyMode = False Selection.Copy Sheets("入力シート").Select Range("G5:AH5").Select ActiveSheet.Paste Sheets("客先住所録").Select Range("E7").Select Application.CutCopyMode = False Selection.Copy Sheets("入力シート").Select Range("K6:T6").Select ActiveSheet.Paste Sheets("客先住所録").Select Range("F7").Select Application.CutCopyMode = False Selection.Copy Sheets("入力シート").Select Range("Y6:AH6").Select ActiveSheet.Paste 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

  • こんなマクロなんですが。

    下記のマクロでエクセルの表からデータ(文字列)を取得するようにしたいとおもっています。 Range("B23").Select Selection.Copy Range("F23").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("B24").Select Selection.Copy Range("F24").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("B25").Select Application.CutCopyMode = False Sheets("September 03").Copy Before:=Sheets(2)          ←ここ Selection.Copy Sheets("September 03 (2)").Select                   ←ここ Sheets("September 03 (2)").Name = "September 10"       ←ここ Range("B33").Select Application.CutCopyMode = False ActiveWindow.SmallScroll Down:=-15 Range("F12:L18").SelectEnd Sub と、まだ続くんですが、とりあえずここまでで。 番地のデータを取り込むようにしたいんですが、うまくいきません。 ←ここ っていうのがまさにそれです。

  • 複数のシートにまたがり、フィルタオプションの設定から値を抽出するマクロ

    複数のシートにまたがり、フィルタオプションの設定から値を抽出するマクロを組んでおります。 表示したくないシート(data,output)を非表示にしたら、エラーが出てしまいました。 非表示シートの状態で処理することはできませんでしょうか。 Sub Macro7() Application.ScreenUpdating = False Sheets("data").Select Columns("A:J").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("マップ").Range("E2:N3"), Unique:=False Columns("A:J").Select Selection.Copy Sheets("output").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Sheets("マップ").Select Range("E5").Select ActiveSheet.Paste Range("H4").Select Sheets("data").Select Application.CutCopyMode = False ActiveSheet.ShowAllData Sheets("マップ").Select End Sub

  • マクロ短縮簡潔方法

    Sub 請求書元表() Application.ScreenUpdating = False Application.DisplayAlerts = False Sheets("請求書元表").Select ActiveWindow.SelectedSheets.Delete Sheets("1回目入力").Select Sheets("1回目入力").Copy Before:=Sheets(19) Sheets("1回目入力 (2)").Select Sheets("1回目入力 (2)").Name = "請求書元表" Range("A2").Select Sheets("2回目入力").Select Range("A2:F600").Select Application.CutCopyMode = False Selection.Copy Sheets("請求書元表").Select Range("A601").Select ActiveSheet.Paste Sheets("請求書元表").Select Range("B2").Select Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Range("B2").Select Sheets("請求書元表").Select Range("b2:b1798").Select Application.CutCopyMode = False Selection.Copy Sheets("請求申込書").Select Range("a2").Select ActiveSheet.Paste Sheets("請求書元表").Select Range("e2:e1798").Select Application.CutCopyMode = False Selection.Copy Sheets("請求申込書").Select Range("d2").Select ActiveSheet.Paste Sheets("請求書元表").Select Range("f2:f1798").Select Application.CutCopyMode = False Selection.Copy Sheets("請求申込書").Select Range("g2").Select ActiveSheet.Paste 'Call 集計申込書 'Call 一括集計 Application.DisplayAlerts = True End Sub

  • 【Excel】マクロにソルバーを組み込んだ時の対処方法

    下記のようにマクロを組みましたが、ソルバーが解を見つけた時にいちいちOKをクリックしないと貼り付けに進みません。以下の作業を何回も繰り返すのですが、すべて自動的に行くにはどのように修正すればよろしいでしょうか? 宜しくお願いいたします。 Sheets("optimise").Select ActiveWindow.ScrollRow = 1 Range("B7").Select Selection.Copy Range("E7").Select ActiveSheet.paste SolverOk SetCell:="$E$35", MaxMinVal:=1, ValueOf:="0", ByChange:="$E$29:$R$29" SolverSolve Range("E29:R29").Select Selection.Copy Sheets("Table").Select Range("G7").Select ActiveSheet.paste Application.CutCopyMode = False Sheets("optimise").Select Range("B8").Select Selection.Copy Range("E7").Select ActiveSheet.paste SolverOk SetCell:="$E$35", MaxMinVal:=1, ValueOf:="0", ByChange:="$E$29:$R$29" SolverSolve Range("E29:R29").Select Selection.Copy Sheets("Table").Select Range("G8").Select ActiveSheet.paste

  • 【Excel】2つのBook間のマクロ

    Excel2003を使用しています。 BookAのSheet1とSheet2のある範囲をそれぞれBookBのSheet1とSheet2に値のみコピーするというマクロを作成しようとしています。 (1)Sheet1を値のみコピーするコード   を書いて (2)Sheet2を値のみコピーするコード   を書こうと思っていたのですが、(1)から(2)へどのように続けて書いたらいいでしょうか? (1)のコードは  Sheets("Sheet1").Range("A1:G30").Select  Selection.Copy  Workbooks.Open Filename:="A:\B.xls"  Sheets("Sheet1").Range("A1").Select   Selection.PasteSpecial Paste:=xlPasteValues   Application.CutCopyMode = False と書いています。 また、こういう場合は、BookAとBookBのどちら側にコードを書いた方がいいのでしょうか?

  • 図形をコピーするマクロ

    Sheets("Sheet1").Select ActiveSheet.Shapes("図 1").Select Selection.Copy Sheets("Sheet3").Select Range("E9").Select ActiveSheet.Paste 上記は、"Sheet1"の"図1"を、"Sheet3"の"E9"にコピーするマクロです。 これを改良して、Sheet1以外のシートがアクティブになっている時に実行すると、"Sheet1"の"図1"が、現在アクティブになっているシートのセレクトされているセルにコピーされるようにしたいのですが。 どのようにマクロを変えればいいでしょうか。

専門家に質問してみよう