エクセルVBAでお願いします。1つのブックに複数シートがあって、その3番目から最後のシートまで選択して印刷プレビューをかけたいと思っています。仮に1番目のシート名が"設定"、2番目のシート名が"名簿"だとすると、この2つのシートは印刷しない、選択しないということです。印刷が終わったら、ブックを保存しないで閉じて、また開きたいです。つまり、'ブックを最後に保存した状態に戻したいです。なお、Worksheets(Array("Sheet3", "Sheet4", "Sheet5")).Selectのような記述はうまくいきません。また、エクセル2002です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/03/28 22:56:22
  • 終了:2009/04/04 23:00:03

回答(2件)

id:angemaries No.1

angemaries回答回数80ベストアンサー獲得回数22009/03/29 01:12:18

ポイント35pt

不要なシートを非表示にして、全シート印刷、保存しないで閉じる

Worksheets("設定").Visible = False

Worksheets("名簿").Visible = False

ActiveWorkbook.PrintOut Copies:=1, Collate:=True

ActiveWorkbook.Close SaveChanges:=False

http://www.yahoo.co.jp

id:anglar

回答ありがとうございました。ただし、印刷プレビューをかけたいと思っています。変更できますか?

2009/03/29 21:21:09
id:ardarim No.2

ardarim回答回数892ベストアンサー獲得回数1422009/03/29 20:19:40

ポイント35pt

自分自身を閉じてまた開くというのは不可能ですので、そういうことを行うには別のブックにVBAを登録して、そのブックから印刷したいブックを開く必要があります。

やりたいこと(全体)がいまいち分からないので、とりあえず保存せずに閉じるところまでのサンプルです。

Option Base 1

Sub test()

    Dim sheetArray() As String

    ReDim sheetArray(Sheets.Count - 2)
    For i = 3 To Sheets.Count
        sheetArray(i - 2) = Sheets(i).Name
    Next i
    Sheets(sheetArray).Select

    ActiveWindow.SelectedSheets.PrintPreview
    
    ThisWorkbook.Close saveChanges:=False

End Sub

URLはダミー

http://q.hatena.ne.jp/1238248579

id:anglar

ありがとうございました。思った通りの結果になりました。感謝。

2009/03/29 21:26:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません