-PR-
解決済み

分類毎に分けられたシートの表示

  • すぐに回答を!
  • 質問No.71014
  • 閲覧数166
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 55% (5/9)

エクセルで分類のある住所録をそれぞれの分類毎のフォームに飛ばして印刷されるしくみを作成中です。
「分類毎にシートに分ける」でnishi6さんに教えていただいたVBAで作っているのですが、マクロで実行かけて一括で印刷までさせてしまわずに、1件ずつ表示させながら、印刷("次を表示→印刷"の繰返し)させていきたいので、アドバイスをお願い致します。
分類は、5つです。現在、アクティブシートの印刷のVBAは分かったのですが、各シートに飛んだ後、それを表示させる事と、次を表示させる事が出来ません。
どうか、宜しくお願い致します。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

方法1.今のまま、印刷プレビュー(PrintPreview)にしておいて、プレビュー画面で確認して、印刷する場合は「印刷」ボタン、印刷しない場合は「閉じる」ボタンを押す方法はどうでしょうか。
方法2.各シートに飛んだときにメッセージボックスを表示するようにしてみました。前回のVBAの後半部分を修正、追加してみて下さい。(行の後ろに '*** がある行です)
「ok」で印刷(今はプレビュー)して次のデータを表示、「キャンセル」で次のデータの表示を行います。
メッセージボックスの表示位置が制御できないので画面の真中に出てしまいます。じゃまな感じもします。ユーザーフォームなら画面表示位置を指定できるので勉強してみてください。

'各シートに飛ばす(Sheet2から。Sheetは連番)
Dim rw As Long '行カウンタ
Dim br As Integer '各データの分類
Dim ws As Worksheet '印刷をするシート
'Application.ScreenUpdating = False 'シート表示を固定 ***コメント行にした
With ws1.Range("A1")
For rw = startRow To lastRow '指定した範囲を印刷
br = .Offset(rw, BunruiCol) + 1 'シート番号を求める
Set ws = Worksheets("Sheet" & br) 'シートを決定
For cl = 0 To columnMax '1行分目的のシートに書く
ws.Range("A1").Offset(0, cl) = .Offset(rw, cl)
Next
ws.Activate
If MsgBox("印刷しますか?", vbOKCancel, "確認") = vbOK Then '***追加***
'PrintPreview を PrintOut に変えれば印刷を実行
ActiveSheet.PrintPreview
End If '***追加***
Next
End With
'Application.ScreenUpdating = True 'シート表示の固定解除 ***コメント行にした
ws1.Activate 'Sheet1を表示
お礼コメント
ruru-k

お礼率 55% (5/9)

ありがとうございました。ここまで出来たら後は、いろいろ勉強して飾り付けをしていきます。nishi6さん本当に、いろいろとありがとうございました。
今回の回答で、ようやくこの辺でこういう処理をさせているのだなぁ!?という程度ですが分かってきました。nishi6さんのおかげです。私ももっと勉強して、いろいろ作っていきたいと思います。実践あるのみですね!
投稿日時 - 2001-05-04 07:35:17
-PR-
-PR-
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ