[[20130514163410]] 『マクロで形式選択貼付に苦労しています』(ハオ) ページの最後に飛ぶ

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

 

『マクロで形式選択貼付に苦労しています』(ハオ)
 Private Sub CommandButton1_Click()

 Dim wba As Workbook
  Dim wbb As Workbook

   Application.ScreenUpdating = False ' ちらつきを最小限に抑える

   Set wba = ThisWorkbook '自ブック=集計シート
   Set wbb = Workbooks.Open("test2") '他ブック入力シートを開く
   wbb.Worksheets("sheet1").Range("A:D").Copy wba.Worksheets("sheet1").Range("A1") '他ブック→自ブックへ入力データのコピー
   wbb.Close SaveChanges:=False '他ブック入力シートを変更せずに閉じる

   Set wba = Nothing '変数の解放
   Set wbb = Nothing '変数の解放

  Application.ScreenUpdating = True

 End Sub

 test1からVBAを実行すると、test2のAからDセルにあるものをtest1のA1に貼り付ける。
 ここまでは私の希望通りです。
 ですが、これは数式も一緒にコピーしてしまうので、
 形式を選択して貼り付けを行いたいと思いたく、
 .Pastespecial paste=xlpastevalues
 を貼り付けたいのだが、エラーばかり表示されます。
 多分貼り付ける場所が違ったのか、上記のコードを貼り付けるにはなにらかのコードが必要かもしれません。
 どなたか知識のある方、ご教授ください。

 ハオ

 エラーの種類が書かれていないので推測ですが、

 >.Pastespecial paste=xlpastevalues

 これだとpaste:のコロンが抜けてるのでコンパイルエラーになるはずです。
 あるいは実行時エラー1004ならば、貼り付け先がどこか結合されたりしてませんか?
(Jera)

 Jaraさま
 レスをありがとうございます。
 エラーを書いてなくすいません。
 b.Worksheets("sheet1").Range("A:D").Copy wba.Worksheets("sheet1").Range("A1")
 の中にcopyはあるのに、pasteがないのでおそらく
 .Range("A1")の次に.Pastespecial paste=xlpastevaluesを貼るんだろう
 と考えたのですが、赤表示になり
 「コンパイルエラー 修正候補:ステートメントの最後」と表示されました。

 コロンが抜けているというアドバイスを頂けたのですが、どこにコロンを追加されるのでしょうか?
 よろしくお願い致します。

 ハオ

 補足
 コピー先、貼り付け先に結合されているところがありますが、これだとできないのでしょうか?
 作成したコードは正常に貼り付けはできたのですが、形式選択貼付となるとできなくなってしまうのでしょうか?
 ハオ


 >b.Worksheets("sheet1").Range("A:D").Copy wba.Worksheets("sheet1").Range("A1")

 Copyにカーソルを当ててF1を押しヘルプを見て下さい。
 expression.Copy(Destination)とありますね? 
 引数Destinationはコピー先のセル範囲を指定する、ともあります。

 既にwba.Worksheets("sheet1").Range("A1")を指定していますので、その一文で貼り付けも完了しています。
 ですからその後ろにpastespecialメソッドを書くのは文法的に誤りです。

 >コピー先、貼り付け先に結合されているところがありますが、これだとできないのでしょうか?
 >作成したコードは正常に貼り付けはできたのですが、形式選択貼付となるとできなくなってしまうのでしょうか?

 すぐに確認できる事ですから、まずは試してみて下さい。
 適当なセルをコピーして、結合セルに向かって値のみ貼り付け。エラーになるでしょ?

 wbb.Worksheets("sheet1").Range("A:D").Copy
 wba.Worksheets("sheet1").Range("A1").Pastespecial Paste:=xlpasteValues

 値のみ貼り付けのコードはこんな感じですが、貼り付け先に結合セルがあったらOUTです。
 セルの結合は極力使わず、どうしてもというなら印刷するための表を「完成系にする直前」で行うのが良いと思います。
(Jera)


Jeraさま
 親切にご説明をありがとうございます。
 分かりました。結合セルがないように作り直します。
 ありがとうございました。
 ハオ

コメント返信:

[ 一覧(最新更新順) ]


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