• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル・フォームを利用して印刷範囲を指定したい)

エクセル・フォームを利用して印刷範囲を指定したい

このQ&Aのポイント
  • OfficeXPを使用して学校の名簿を作成しています。トップページにユーザーフォームを置き、印刷したいシート・学年・クラスを選択して印刷範囲を指定したいと考えています。
  • マクロの操作が苦手で困っています。どなたかわかる方いらっしゃいましたら教えてください。
  • ユーザーフォームで選択したシートの指定した範囲を印刷する方法について詳しく教えてください。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

参考URL:
http://www.moug.net/index.htm
untokodokkoisyo
質問者

お礼

返事が遅くなりました。答えていただきありがとうございました。参考例をコピーして、Captionは実際のシート名に則した形で書き換えて作ってみましたが、印刷のボタンをクリックしても印刷の画面まで行きませんでした。 チェックボックスの数もKumiKosuuも合わせましたが、どこがいけなかったのかよくわかりませんでした。 参考URLも見ながら引き続きがんばってみます。

関連するQ&A