• ベストアンサー

VBAの構文過ち箇所指摘お願いします。

まだまだVBA初心者です。 あるブックに2番目に開いたブックの一部を選択し、図のコピーで貼り付けるというものですが、最初の Workbooks(2).workshees(Sheets.Count).Activate でエラーが出ます。 2番目に開いたブックの一番右のシートの中の一部のセルを選択したいのですが、ご指摘おねがいします!! 以下その構文です。 Sub 2番目に開いたブックの貼り付け() On Error GoTo HandleErr Workbooks(2).workshees(Sheets.Count).Activate ActiveWindow.DisplayGridlines = False Range("A1:B2").Select Selection.CopyPicture Appearance:=xlScreen,Format:=xlPicture Workbooks(1).Activate Workbooks(1).Worksheets(Sheets.Count - 1).Range"B41").Select     ・     ・     ・     間省略 Exit Sub HandleErr: MsgBox "2番目のブックが開かれておりません!!" End Sub

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

一応、質問のエラーの件だけ。 気づいた点3つあり。 >Workbooks(2).workshees(Sheets.Count).Activate (1)workshees ではなくて、Worksheets ( t が抜けてる) (2)Sheets.Countの前にWorkbookオブジェクトが必要 (3)Workbooks(2)にworksheetだけでなくGraphシートなどもあるのなら    Sheets.Countではなくて、Worksheet.Countでないとダメ 以上を踏まえて確実に書くとすると Workbooks(2).Worksheets(Workbooks(2).Worksheets.Count).Activate 又は With Workbooks(2)   .Worksheets(.Worksheets.Count).Activate End With など。  

daiettosur
質問者

お礼

"t"のミスも含めて上記の通り守勢すると無事動きました。 ありがとうございます。 こんなミスを見落とすほど迷路に入り込んでいたのかも。

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

>Workbooks(2).workshees(Sheets.Count).Activate >でエラーが出ます。 他のところは見ておりませんが、とりあえず  Workbooks(2).Worksheets(Sheets.Count).Activate ってことですか? (Workshee"t"s ← t が抜けてます) コードは、手打ちでここに入力されたのでしょうか?

daiettosur
質問者

お礼

無事マクロ作動しました。 ありがとうございます。

daiettosur
質問者

補足

一部手打ちで打ち直したところありますが、 その時に"t"が抜けてしまったかどうか定かではないです。 でもそうでなければ、ケアレスミスですよね…。

関連するQ&A