基本的に次のように動作するモジュールを作成したいと考えていました。
- 4 つまたは 5 つの印刷範囲を定義します。
- ユーザーに入力ボックスを表示します。
- ユーザーがその入力ボックスのドロップダウンから、印刷したい範囲を選択できるようにします。
- 範囲を選択した後、[OK] をクリックすると、「よろしいですか?」というメッセージが表示されます。誤クリックを防ぐためのボックス。
私はこれについてかなり迷っており、正直なところ、私が書いてきたコードは問題を明確にするだけでは役に立たないと感じています。
ユーザーが範囲を定義して(印刷したい列を手動で選択して)動作させましたが、それは私が探しているものではありません。
さらに一歩進んで、印刷形式 (横か縦か、用紙の種類) をさらにカスタマイズできるようにすることは可能でしょうか?
事前に助けてくれてありがとう。質問に答えて、上記で参照したコードのサンプルを提供するために最善を尽くします (列を選択できるようにするためのプロンプトです。名前で定義された範囲にする必要があります)。 、range1=a2:c14
またはそのようなものです。エンド ユーザーは優れた Excel ユーザーではないためです。
下記参照:
Sub SelectPrintArea()
Dim PrintThis As Range
ActiveSheet.PageSetup.PrintArea = ""
Set PrintThis = Application.InputBox _
(Prompt:="Select the Print Range", Title:="Select", Type:=8)
PrintThis.Select
Selection.Name = "NewPrint"
ActiveSheet.PageSetup.PrintArea = "NewPrint"
ActiveSheet.PrintPreview
End Sub
フォローアップとして:
ドキュメントに非表示のセクションがあると仮定すると、それらがユーザー定義の範囲の一部である場合 (グループの一部である場合など)、それらのセクションを再表示できますか? これは保護されたドキュメントで機能しますか?