レコードが含まれないレポートの印刷をキャンセルする

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。 このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。 簡単に参照できるように、こちらに英語の記事があります。

既定では、レコードが含まれていないレポートは印刷できます。 この問題を解決するには、マクロまたは Microsoft Visual Basic for applications (VBA) コードを使用して、レポートに含まれていないレコードを検出し、印刷操作をキャンセルします。 この記事の手順では、両方の方法を使用する方法について説明します。

目的に合ったトピックをクリックしてください

マクロを使用して印刷を中止する

VBA コードを使用して印刷をキャンセルする

レコードが含まれていない場合は、レポートの印刷をキャンセルすることをお勧めします。 たとえば、新しい製品の販売を開始する場合、まだ販売を登録していない期間があると思われます。 したがって、一部のレポートには、詳細レコードが含まれていない可能性があり、 count関数などの集計関数にはカウントするものがない可能性があることを考慮しておく必要があります。 このような出来事を適切に処理するには、印刷ジョブをキャンセルするマクロを作成します。 また、同じように、慎重に配置された VBA コードを数行追加することもできます。 VBA は、" z0z_ " で使用されるプログラミング言語です。

マクロまたは VBA コードを、 [Da 登録なしイベントのレポートに追加します。 レコードが含まれていないレポートを実行すると、"データなし" イベントが発生します(z0z_) この記事で説明されているマクロと VBA コードは、適切なメッセージを表示し、そのレポートにデータが含まれていない場合は、レポートの印刷をキャンセルします。 [データなし] イベントプロシージャにマクロまたは vba コードを追加すると、レコードが含まれていないレポートを開くたびにマクロまたは vba コードが実行されます。 [ OK]をクリックして通知メッセージを閉じると、マクロによって空白のレポートも閉じられます。 レポートにマクロまたは VBA コードを追加すると、レポートビューまたはレイアウトビューでレポートを表示しようとしたときに空白のレポートが開かないようになりますが、デザインビューでレポートを開くことができます。

マクロを使用して印刷を中止する

このセクションで説明されているマクロでは、空白のレポートを印刷しようとすると、警告メッセージが表示されます。 [ OK ] をクリックしてメッセージボックスを閉じると、印刷操作が自動的にキャンセルされます。 通知メッセージが表示されない場合は、レポートを印刷しようとしても何も起こらないように見えます (レポートのユーザーを混乱させる可能性があるもの)。

マクロを作成する

  1. ナビゲーションウィンドウで、変更するレポートを右クリックし、[デザインビュー] をクリックします。

  2. [デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。

    または

    地域と言語の設定に応じて、レポートの左上隅または右側のボックスをダブルクリックします。

  3. [イベント] タブをクリックし、[データなし] プロパティボックスで [ (z0z_)] をクリックします。

    [ビルダーの選択] ダイアログボックスが表示されます。

  4. [マクロビルダー] をクリックし、[ OK]をクリックします。

    マクロデザイナーが起動し、空白のマクロが表示されます。

  5. [マクロのデザイン] ウィンドウのマクロアクションのドロップダウンリストで、一覧から [ MessageBox ] を選びます。

  6. [メッセージ] ボックスに、通知メッセージのテキストを入力します。

    たとえば、次のように入力します。レポート対象のレコードはありません。

  7. 必要に応じて、[警告] ボックスの引数の値を[はい] から [いいえ] に変更し、[種類] ボックスの一覧で、通知メッセージに表示するアイコンの種類を選びます。

  8. [タイトル] ボックスに、通知メッセージのタイトルを入力します。

    たとえば、「レコードなし」と入力します。

  9. メッセージボックスアクションの下にあるマクロアクションのドロップダウンリストを選択し、[イベントのキャンセル] を選択します。

  10. [デザイン] タブの [閉じる] グループで、[保存] をクリックします。

  11. [デザイン] タブの [閉じる] グループで [閉じる] をクリックします。 警告メッセージが表示され、マクロとレポートプロパティへの変更を保存するかどうかを確認するメッセージが表示されたら、[はい] をクリックし、メッセージが表示されたら、変更を保存して、次の手順に進んでテストします。

マクロをテストする

  • ナビゲーションウィンドウで、マクロを含むレポートを右クリックし、[印刷] をクリックします。 選択したオプションに応じて、通知メッセージが表示されます。

    [ OK]をクリックしてメッセージを閉じると、 CancelEventアクションによって印刷操作が停止します。 他のイベント (表示用にレポートを開くなど) が指定されていないため、レポートが閉じます。

ページの先頭へ

VBA コードを使用して印刷をキャンセルする

ここで説明した VBA コードは、前のセクションで説明したマクロと同じように動作します。空白のレポートを開いたときに通知メッセージが表示され、通知メッセージを閉じると、印刷操作がキャンセルされます。

VBA コードを追加する

  1. ナビゲーションウィンドウで、変更するレポートを右クリックし、[デザインビュー] をクリックします。

    注: この手順を完了するには、レコードが含まれていないレポートを使用します。

  2. [デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。

    または

    地域と言語の設定に応じて、レポートの左上隅または右側のボックスをダブルクリックします。

  3. [イベント] タブをクリックし、[データなし] プロパティボックスで [ (z0z_)] をクリックします。

    [ビルダーの選択] ダイアログボックスが表示されます。

  4. [コードビルダー] をクリックし、[ OK]をクリックします。

    Visual Basic エディターが起動し、空白のイベントプロシージャが表示されます。

  5. 操作が完了したら、次のコードを Visual Basic Editor で入力して、Report_NoData プロシージャがこのように表示されるようにします。

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. 完了したら、[ファイル] をクリックし、[保存] をクリックします。

  7. [ファイル] をクリックし、[終了して Microsoft access に戻る] をクリックします。

  8. 開いているレポートを閉じ、[はい]をクリックして保存を確認します。

  9. ナビゲーションウィンドウで、変更したばかりのレポートを右クリックし、[印刷] をクリックします。 選択したオプションに応じて、通知メッセージが表示されます。

Report_NoData プロシージャは、 MsgBox関数を使用して、メッセージを報告するレコードがなく[OK ] ボタンを表示します。 [ OK]をクリックすると、プロシージャに "キャンセル = True" の行が表示され、レポートをキャンセルするよう指示されます。 Cancelは、イベントプロシージャに自動的に渡される引数であり、イベントプロシージャが完了すると常に Access によってチェックされます。

ページの先頭へ

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×