- ベストアンサー
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
- みんなの回答 (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 など。
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>Workbooks(2).workshees(Sheets.Count).Activate >でエラーが出ます。 他のところは見ておりませんが、とりあえず Workbooks(2).Worksheets(Sheets.Count).Activate ってことですか? (Workshee"t"s ← t が抜けてます) コードは、手打ちでここに入力されたのでしょうか?
お礼
無事マクロ作動しました。 ありがとうございます。
補足
一部手打ちで打ち直したところありますが、 その時に"t"が抜けてしまったかどうか定かではないです。 でもそうでなければ、ケアレスミスですよね…。
お礼
"t"のミスも含めて上記の通り守勢すると無事動きました。 ありがとうございます。 こんなミスを見落とすほど迷路に入り込んでいたのかも。