こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【マクロ】値貼り付けに変更するには…?

当方Excel2003です。
○フォルダ内に入力用のブック(複数)とまとめ用ブック(一つ)が存在し
○すべてのブックにはシートが一つしかなく、タイトル行の位置はまとめブック含めすべて同じ構成である
○入力用ブックのシート名は「入力」、まとめ用ブックのシート名は「まとめ」である
前提で、入力用ブックのデータ入力域をまとめ用ブックに順次コピーをしようと作成中のものですが、

以下の構文
Set c = .Range("B" & .Rows.Count).End(xlUp).Offset(1)
あるいは
With .Worksheets(入力).Range("B3:H3" & Range("H65532").End(xlUp).Row).Copy Destination:=c
の部分について
コピー貼り付け(そのまま)ではなく、
「値のみの貼り付け」に変更するには?
どういうふうに変更したら良いのか
どなたかご教示いただければ幸いです。
よろしくお願いいたします。

Sub 連続貼り付け()
Dim sFile As String
Dim c As Range
Dim myPAth As String

Application.ScreenUpdating = False

sFile = Dir(ThisWorkbook.Path & "\*.xls", vbNormal)

myPAth = ThisWorkbook.Path

Do While 0 < Len(sFile)
     With ThisWorkbook.Worksheets("まとめ")
      Set c = .Range("B" & .Rows.Count).End(xlUp).Offset(1)
     End With

    Select Case sFile
       Case ThisWorkbook.Name:
       Case Else
         With Workbooks.Open(Filename:=myPAth & "\" & sFile, ReadOnly:=True)
             With .Worksheets(入力)
                 .Range("B3:H3" & Range("H65532").End(xlUp).Row).Copy Destination:=c
             End With
            .Close SaveChanges:=False
         End With

     End Select

     sFile = Dir()
     Set c = Nothing
  Loop

  Application.ScreenUpdating = True

  End Sub

投稿日時 - 2011-08-17 00:33:02

QNo.6947596

困ってます

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

>.Range("B3:H3" & Range("H65532").End(xlUp).Row).Copy Destination:=c
を以下のように変更

.Range("B3:H" & Range("H65536").End(xlUp).Row).Copy
c.PasteSpecial Paste:=xlPasteValues  ' 値貼り付け

なお、ワークシートの最終行が65536行であることを前提とするコーディングは、
Excelを2007または2010にアップデートしたことを考慮して、もう少し別の
書き方をすべきです。

投稿日時 - 2011-08-17 01:48:59

お礼

すばやいご回答ありがとうございました。
おかげで解決することができました。

投稿日時 - 2011-08-21 23:50:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問