• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値のみ貼りつけたい。)

マクロで複数のファイルを開き、値のみをコピー&貼り付けしたい

jcctairaの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

あまりコピーにこだわらなければ7命令が、以下の1命令で値コピーは完了します。     Workbooks(3).Sheets(2).Range("B1:C1").Value = Workbooks(2).Sheets(1).Range("A1").Value

konekos
質問者

お礼

jcctaira様 有難うございます。参考になりました。

関連するQ&A

  • マクロでコピー&ペースト処理が遅いような気がします。単純化したいです。

    Sub ***出力(file, num) Workbooks.Open (file) Cells.Clear Windows("xxx.xls").Activate Sheets("***").Select Range(num & "2:" & num & "2000").Select Selection.Copy Windows(file).Activate Range("A1").PasteSpecial Paste:=xlPasteValues End Sub 2行目から2000行目の中には計算値が入っています(結構ながい)。 その値を"file"に値のみペーストします。 しかし、処理が遅いので早くしたいです。 単純化できないでしょうか?

  • 複数シートをループさせてマクロを簡素化したい

    win7 Excel2007 でマクロ作成中の初心者です。 シート数の変動する複数シートの特定範囲を一枚のシートに右列方向に、値を貼り付けたいです。 自動記録でコード作成しましたが、もっと簡素化して軽くしたいです。 シートに対するループ等の作成ができません。どうかご指導お願いします。 Sub 勤怠最終データ作成() Worksheets(1).Select '1番左のシートを選択 ActiveSheet.Unprotect Range("B29:BM60").Select '複写範囲はすべて同じ Selection.Copy Sheets("総括").Select '値の貼り付けシートはすべて同じ Range("A2").Select '値の貼り付け先 Selection.PasteSpecial Paste:=xlPasteValues ’-------------------------------------- Worksheets(2).Select '2枚目のシートを複写 ActiveSheet.Unprotect Range("B29:BM60").Select Selection.Copy Sheets("総括").Select 最終セルの選択 '値の貼り付け先 Selection.PasteSpecial Paste:=xlPasteValues ’-------------------------------------- Worksheets(3).Select '3枚目のシートを複写 ActiveSheet.Unprotect Range("B29:BM60").Select Selection.Copy Sheets("総括").Select 最終セルの選択 Selection.PasteSpecial Paste:=xlPasteValues ’-------------------------------------- Worksheets(4).Select '4枚目のシートを複写 ActiveSheet.Unprotect Range("B29:BM60").Select Selection.Copy Sheets("総括").Select 最終セルの選択 Selection.PasteSpecial Paste:=xlPasteValues 以下省略 End Sub

  • EXCEL VBA セルからファイル名を読み込む

    EXCEL VBAについての質問です 同じ処理を名前の違う複数のファイルで行いたいと思っています そこで、セルA2へファイル名の『○○.xls』○○部分だけをそれぞれのファイルに書き込んでおき、マクロは共通にしてファイル名をそれぞれのファイルから読み込んで実行したいと思っています。 良い方法を教えてください。 Workbooks("200809.csv").Activate Sheets("200809").Select Range("C3:C33").Copy Windows("○○.xls").Activate'←ここをファイルにあわせて変更できる形にしたい Sheets("報告書").Select Range("G5:G35").Select ActiveSheet.Paste Windows("200809.csv").Activate Range("K3:K33").Copy Windows("○○.xls").Activate’←ここ Sheets("報告書").Select Range("I5:I35").Select ActiveSheet.Paste Workbooks("200809.csv").Close SaveChanges:=False よろしくお願いします。

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

    あるデータを転記用のブック(月毎にシートが分かれています。シートの内容は同一)に貼り付ける処理を行うため、下記のようなマクロを組んだのですが、何故か貼りつきません。処理終了時には、転記元ブック(シート)で最終処理の範囲(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 

  • Select Case の使い方について

    エクセルのバージョンは2003です。 Worksheets("様式2")のセルをコピーしてWorkbooks("件数.xls").Worksheets("件数")のセルに数値のみを張り付ける作業を Select Caseを使って組んでいるのですが数が多くて打ち切れません。 WS2からコピーするセルは変わらずWB1へ貼り付けする場所は列がずれて行きます。 myNoは1~30までで、1の場合はC列に数値を貼り付けし、2の場合はD列に数値を貼り付けし、3の場合はE列に数値を貼り付けし・・・ といった具合に列をずらして貼り付けを行いたいのです。 よろしくお願いします。 Dim myNo As Integer Set WS2 = Worksheets("様式2") Set WB1 = Workbooks("件数.xls").Worksheets("件数") myNo = Workbooks("件数.xls").Worksheets("一覧").Range("V7").Value Select Case myNo Case Is = 1 'Worksheets("様式2")からWorkbooks("件数.xls").Worksheets("件数")へ数値のみコピー WS2.Range("T7").Copy WB1.Range("C4").PasteSpecial Paste:=xlPasteValues WS2.Range("T8").Copy WB1.Range("C7").PasteSpecial Paste:=xlPasteValues WS2.Range("T10").Copy WB1.Range("C13").PasteSpecial Paste:=xlPasteValues WS2.Range("T11").Copy WB1.Range("C16").PasteSpecial Paste:=xlPasteValues WS2.Range("T13").Copy WB1.Range("C22").PasteSpecial Paste:=xlPasteValues WS2.Range("T14").Copy WB1.Range("C25").PasteSpecial Paste:=xlPasteValues WS2.Range("T16").Copy WB1.Range("C31").PasteSpecial Paste:=xlPasteValues WS2.Range("T17").Copy WB1.Range("C34").PasteSpecial Paste:=xlPasteValues WS2.Range("T18").Copy WB1.Range("C37").PasteSpecial Paste:=xlPasteValues WS2.Range("T69").Copy WB1.Range("C5").PasteSpecial Paste:=xlPasteValues WS2.Range("T70").Copy WB1.Range("C8").PasteSpecial Paste:=xlPasteValues WS2.Range("T72").Copy WB1.Range("C14").PasteSpecial Paste:=xlPasteValues WS2.Range("T73").Copy WB1.Range("C17").PasteSpecial Paste:=xlPasteValues WS2.Range("T75").Copy WB1.Range("C23").PasteSpecial Paste:=xlPasteValues WS2.Range("T76").Copy WB1.Range("C26").PasteSpecial Paste:=xlPasteValues WS2.Range("T78").Copy WB1.Range("C32").PasteSpecial Paste:=xlPasteValues WS2.Range("T79").Copy WB1.Range("C35").PasteSpecial Paste:=xlPasteValues WS2.Range("T80").Copy WB1.Range("C38").PasteSpecial Paste:=xlPasteValues

  • Excel2003 Range("XXX").Copyについて

    下記のようにコピペをしたいのですが ActiveSheet.Paste Sheets("sheets1").Range("V3").Copy Worksheets("sheets2").Activate Sheets("sheets2").Range "A1").Select 上の方法だと良く行くのですが下記だとSheets("sheets1").Cells(9,16).Copyエラーになってしまします。どうしてもCells(9,16) を使いたいのですが方法を教えてください。 ActiveSheet.Paste Sheets("sheets1").cells(9,16).Copy Worksheets("sheets2").Activate Sheets("sheets2").Range "A1").Select よろしくお願いします。

  • VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗

    マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。 マクロの内容は、任意の範囲をコピー、新規book追加し、 新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。 いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。 下記にマクロ内容全部記載します。 よろしくお願いします。 ********************************************************* ********************************************************* Sub 日報別ファイルに保存したい1() Worksheets("日報").Range("A3:AF36").Copy With Workbooks.Add Cells.Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells.Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("A1").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ApplicationDisplayAlerts = True '同名FILEが存在する場合' ActiveWorkbook.SaveAs Filename:= _ "c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _ , FileFormat:=xlNormal .Close file End With End Sub

  • エクセルVBAで値だけをコピーペーストする方法

    下記のマクロは、エクセルのシート「精算」のb12~bz342の範囲からからシート「集計表」のアクティブセルを始点に、空白行を除いたデーターを貼り付けます。 しかし計算式と書式を抜いた値だけを貼り付けたいので、 ActiveSheet.Pasteを ActiveSheetSpecial Paste:=xlPasteValues に書き換えたらエラーになってしまいました。 どなたか詳しい方ご教授下さい。 よろしくお願いします。 Sub 精算項目コピー() Dim 最終列 As Integer Sheets("精算").Activate 最終列 = Range("b342").End(xlUp).Row Range("b12:bz" & 最終列).Select Selection.Copy Sheets("集計表").Select ActiveSheet.Paste  ←この部分を書き換えたらエラー End Sub

  • Excelでマクロを繰り返したい。

    Excelでマクロを記録したら以下のようになりました このマクロを以下の条件で繰り返したいのですが。 Sub Macro1() '------------- '----------------------- ' Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=5*", Operator:=xlAnd, _ Criteria2:="<>5@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=6*", Operator:=xlAnd, _ Criteria2:="<>6@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=7*", Operator:=xlAnd, _ Criteria2:="<>7@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=8*", Operator:=xlAnd, _ Criteria2:="<>8@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 条件= Field:は4~35位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • 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 オブジェクトの一部のメソッドでは、対象となる範囲にデータが入力されている必要があります。範囲にデータが入力されていない場合は、メソッドの実行に失敗します。 お忙しい所申し訳ありませんが、宜しくお願いいたします。