[[20041112093755]] 『セルのコピー&貼付』(TTC) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルのコピー&貼付』(TTC)

 別ブックを開きセル全体をコピー、ThisWorkbookの指定のシートへ貼付  
  という部分を作成しているのですが、貼付のところがうまくいきません。
 .Cells.Copy Destination:=MyWs1.Cells.PasteSpecial〜 のところで
 RangeクラスのPasteSpecialプロパティーを取得できませんと出ます。
 PasteSpecialがなければうまくいくのですが...

 録音等で行なえばコードを取得することができますが
 以下のコードの貼付で形式を選択させることはできますでしょうか?

 あと

         .Range("A8").Select
             Range(Selection, Selection.End(xlToRight)).Select
             Range(Selection, Selection.End(xlDown)).Select
         Selection.AutoFilter
 この部分もすっきりできますでしょうか?

 Sub 取り込み()

 Dim 参照パス As String
 Dim Wb1 As Workbook, Wb2 As Workbook, Wb3 As Workbook
 Dim MyWs1 As Worksheet, MyWs2 As Worksheet, MyWs3 As Worksheet, ZeWs As Worksheet

 参照パス = "\\10.164.64.54\投入庫\"

 Application.DisplayAlerts = False

 With ThisWorkbook

 Set MyWs1 = .Worksheets("A")
 Set MyWs2 = .Worksheets("B")
 Set MyWs3 = .Worksheets("C")
 Set ZeWs = .Worksheets("全社")

 End With

 Set Wb1 = Workbooks.Open(参照パス & "予定.xls")

     With Wb1

         With .Sheets("予定")

                 .AutoFilterMode = False

                 .Cells.Copy Destination:=MyWs1.Cells.PasteSpecial(xlPasteValues + xlPasteFormats)

                 .Range("A8").Select
                     Range(Selection, Selection.End(xlToRight)).Select
                     Range(Selection, Selection.End(xlDown)).Select
                 Selection.AutoFilter

            'MyWs1.Cells.PasteSpecial Paste:=xlPasteFormats + xlPasteValues
         '↑これでもうまくいかない...

         End With

     End With

 End Sub

 よろしくお願いします。

 CopyメソッドのDestinationは、普通のコピーのときの貼り付け先のRangeを指定するものです。
 PasteSpecialを使うなら、 CopyメソッドのDestinationは使用しません。
 copyメソッド→PasteSpecial メソッド
 とします。

 マクロの記録と、ヘルプの
 「PasteSpecial メソッド (Range オブジェクト) の使用例」
 を参考にして下さい。

  (INA)


 INAさんありがとうございます。
 ヘルプ等を見てみました。
 .Cells.Copy
 省略
 With MyWs1
     .Cells.PasteSpecial Paste:=xlPasteFormats + xlPasteValues
 End With

 に変更してみましたが

 PasteSpecialメソッドが失敗しました...となってしまいました。

 いろいろコードを変えてみましたがうまくいきません
 どこに問題がありますでしょうか?

 (TTC)


 マクロの記録を参考にすれば、
 >Paste:=xlPasteFormats + xlPasteValues
 このような操作は出来ないという事が分かると思います。

 [ヘルプより] 
 Paste   省略可能です。 
 指定範囲に何を貼り付けるかを指定します。
 使用できる定数は、XlPasteType クラスの 
 xlPasteAll、xlPasteFormulas、xlPasteValues、xlPasteFormats、xlPasteNotes、
 xlPasteAllExceptBorders のいずれかです。既定値は xlPasteAll 
                           ~~~~~~~~

   (INA)


 二つは同時に出来ないということですね?
 記録すると下のようになると思うんですが...
 分からなくなってしまいました...

 With MyWs1
     .Activate
     .Cells.Select
     Selection.PasteSpecial Paste:=xlPasteFormats
     Selection.PasteSpecial Paste:=xlPasteValues
 End With

 失敗してしまいます。

 形式を指定しなければ最初のでよかったのですがオートシェイブがあって
 それが重なってしまうのです。書式設定で移動させなければ良いのですが
 その前の段階でそれだと困るのです。使わない方がよいですね...

 (TTC)

 > 失敗してしまいます。
 何が? どのように?

 セル全体をコピーするなら、シートごとコピーして、シート名を変更しては? 

  (INA)


 「RangeクラスのPasteSpecialメソッドが失敗しました」とでました。

 > セル全体をコピーするなら、シートごとコピーして、シート名を変更しては? 
 毎日行なうのですが出来ますでしょうか?同じシートがあったら上書きのように
 出来ればよいのですが...

 (TTC)

 >毎日行なうのですが出来ますでしょうか?
 意味が良く分かりませんが、できるはずです。
 手作業をマクロの記録してみては?
  (INA)


 INAさんありがとうございました。
 前のシートを削除してからシートをコピーするようにしましたら
 できました。こちらの方がすっきりしました
 ありがとうございました。

 (TTC)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.