OfficeXPを使用しています。
学校の名簿を作成しているのですが、トップページにするシートにユーザーフォームを置き、それを利用して指定したシートの指定したページのみを印刷したいと考えています。
ユーザーフォームは、
オプションボタンかリストボタンを利用して印刷したいシート・学年・クラスを選択し、
コマンドボタンをクリックすると印刷のウィンドウが現れ、
選択されたシートの指定した範囲がそのまま印刷できるといった状態にしておきたいと考えています。
補足ですが、各シートは学級名簿、徴収金名簿などいくつかの名簿があり、シート内は改ページプレビューで1組は1ページめ、2組は2ページめ・・・というように設定してあります。
マクロのことはさっぱりなので、困っています。上記の質問でわかりにくい場合は補足もしていきますので、どなたかわかる方教えて下さい。お願いします。
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
返事が遅くなりました。答えていただきありがとうございました。参考例をコピーして、Captionは実際のシート名に則した形で書き換えて作ってみましたが、印刷のボタンをクリックしても印刷の画面まで行きませんでした。
チェックボックスの数もKumiKosuuも合わせましたが、どこがいけなかったのかよくわかりませんでした。
参考URLも見ながら引き続きがんばってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) 【Excel】エクセルの1シートが2枚に分割されてしまうので印刷プレビューを押して閉 4 2022/12/13 13:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同窓会名簿で、亡くなった方の記載
-
亡くなられた方の表現
-
卒業者名簿にメールアドレスを...
-
Accessでレコードを別テーブル...
-
こんな時の言い回し
-
エクセルで学年クラスが変わっ...
-
昔の友達を探したい
-
死んだ人の氏名リスト
-
携帯のアドレス帳に「山田さん...
-
席表をEXCELで作りたい
-
Excel.名簿一覧表から別シート...
-
オンラインでの名簿管理ソフト...
-
一部の古本屋さんに個人名簿?
-
お祝いや香典の書き方
-
自治会で全世帯の名簿を作成配付
-
Access]2つのテーブルを比較し...
-
「○日までに」の意味、その日は...
-
結果が同じことなのに細かくル...
-
同期と給料に差がありました。 ...
-
不動産業者から個人情報をLINE...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同窓会名簿で、亡くなった方の記載
-
Accessでレコードを別テーブル...
-
亡くなられた方の表現
-
エクセルで学年クラスが変わっ...
-
差し込み印刷 1ページに複数の...
-
Access]2つのテーブルを比較し...
-
こんな時の言い回し
-
同窓会の名簿に欠席者・物故者...
-
保護者名簿を作成したいが、依...
-
幼稚園で園児の住所、電話番号...
-
【緊急】エクセルで複数の同じ...
-
昔の友達を探したい
-
教員採用の名簿登載について
-
名簿図書館って
-
柔道整復師名簿はみれますか?
-
大学の同窓会名簿に載らないと...
-
同窓会名簿作成のための、個人...
-
iタウンページの電話番号や住...
-
名簿に載る個人情報について
-
自治会で全世帯の名簿を作成配付
おすすめ情報