- ベストアンサー
エクセル・フォームを利用して印刷範囲を指定したい
- OfficeXPを使用して学校の名簿を作成しています。トップページにユーザーフォームを置き、印刷したいシート・学年・クラスを選択して印刷範囲を指定したいと考えています。
- マクロの操作が苦手で困っています。どなたかわかる方いらっしゃいましたら教えてください。
- ユーザーフォームで選択したシートの指定した範囲を印刷する方法について詳しく教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
答えにくい質問ですね。下は作成例です。 コード部分を短くする方針で書いているので参考にならないかも知れません。 コントロールの名前の付け方が重要なので、下記を踏襲して作り変えて下さい。 シートに対応するチェックボックスの数は任意、組数は『KumiKosuu』にセットします。 フォームを表示して、チェックボックスで選択すれば印刷するはずです。 各シートの印刷設定は完了しているものとしています。 市販の本や、下記URLなどを参考にされるといいと思います。 もう少し、分かりやすく書いてあるはずです。ご参考に。 ○フォーム ┌────────────────┐←フォーム・・・fmPrint │印刷指示 [終了]│ │ │ チェックボックス(処理を簡単にするため、 │ □学級名簿 ・1年 │ チェックボックスのCaption=シート名とします) │ □学級名簿 ・2年 │ □学級名簿・1年───→chkShtGakyuMeibo1 │ □学級名簿 ・3年 │ □学級名簿・2年───→chkShtGakyuMeibo2 │ □徴収金名簿・1年 │ □学級名簿・3年───→chkShtGakyuMeibo3 │ □徴収金名簿・2年 │ □徴収金名簿・1年──→chkShtCyosyukin1 │ □徴収金名簿・3年 │ □徴収金名簿・2年──→chkShtCyosyukin2 │ │ □徴収金名簿・3年──→chkShtCyosyukin3 │ □1組 │ │ □2組 │ □1組────────→chk1Kumi │ □3組 [印刷]│ □2組────────→chk2Kumi └────────────────┘ □3組────────→chk3Kumi(3組を想定) コマンドボタン [印刷]───────→cmdPrint [終了]───────→cmdQuit ここまではユーザフォーム。 ○シート シート名『メニュー』───→ユーザフォームを表示させるシート。 コマンドボタン1個(CommandButton1)あり シート名『学級名簿・1年』、『学級名簿・2年』、『学級名簿・3年』 シート名『徴収金名簿・1年』、『徴収金名簿・2年』、『徴収金名簿・3年』 ・・・各シートの印刷設定は完了している。 ●フォームのコードウインドウ ↓ Const KumiKosuu = 3 '// チェックボックス(組の個数) '// 印刷 Private Sub cmdPrint_Click() Dim ctrl_Sht As Control '// チェックボックス(シート) Dim ctrl_Kumi As Control '// チェックボックス(組) Dim Cot As Integer '// カウンタ Me.Hide For Each ctrl_Sht In Me.Controls '// シートに対応するチェックボックスを調べる If Left(ctrl_Sht.Name, 6) = "chkSht" Then If ctrl_Sht.Value Then '// 組に対応するチェックボックスを調べる For Cot = 1 To KumiKosuu '// 組を選択していれば印刷する If Controls("chkKumi" & Cot) Then Worksheets(ctrl_Sht.Caption).PrintOut From:=Cot, To:=Cot End If Next End If End If Next Me.Show End Sub '// 終わり Private Sub cmdQuit_Click() Unload Me End Sub ●シート名『メニュー』のコードウインドウ ↓ Private Sub CommandButton1_Click() fmPrint.Show End Sub
お礼
返事が遅くなりました。答えていただきありがとうございました。参考例をコピーして、Captionは実際のシート名に則した形で書き換えて作ってみましたが、印刷のボタンをクリックしても印刷の画面まで行きませんでした。 チェックボックスの数もKumiKosuuも合わせましたが、どこがいけなかったのかよくわかりませんでした。 参考URLも見ながら引き続きがんばってみます。