本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]ユーザー定義ダイアログボックスのボタンがクリックされたら印刷を行う方法

文書番号: 401621

最終更新日: 1997/10/20


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP401621

概要

本文書は、Microsoft(R) Visual Basic(R) Programming System Applications
Edition (以下 VBA) を使って、ユーザー定義ダイアログ ボックスに配置したボ
タン コントロール (以下 ボタン) がクリックされたら印刷を行う方法を、サン
プル モジュールと共に解説しています。

詳細

ユーザー定義ダイアログ ボックス (以下 ダイアログ ボックス) に配置したボタ
ンがクリックされたら印刷を行うようにするには、ボタンに登録するマクロの中
で PrintOut メソッドを使用するのではなく、DialogSheet オブジェクトの Show
メソッドを使用して、なおかつダイアログ ボックスを表示しているモジュール内
をループ構造にします。
この方法はダイアログ ボックスを一旦クローズし、再度ダイアログ ボックスを
表示するのでエラー メッセージ「スタック領域が不足しています。」が表示さ
れるような状況に対して有効な方法です。
ダイアログ ボックスが表示されている最中は印刷や印刷プレビューを行うことは
できないため、次の手順でダイアログ ボックスの表示と印刷 (印刷プレビュー)
を行います。

サンプル

サンプル モジュールでは、次のような動作を行います。
  1. ダイアログ ボックス "Dialog1" を表示します。
  2. ダイアログ ボックス "Dialog1" の <印刷> ボタンがクリックされたら ダイアログ ボックスを終了し、エディット ボックス "エディット 4" に 入力されたセル参照を印刷範囲とし、WorkSheet オブジェクト の PrintOut メソッドを実行します。
  3. 印刷が終了したら 1. に戻ります (<終了> ボタンがクリックされるまで 続きます)。 [GRAPHIC: ]

モジュール

  Option Explicit
  Dim i As Integer
  Sub MyPrintDialog()
      Dim point As Variant
      Dim sheetname As String
      Dim refs As String
      Do
          i = 0
          DialogSheets("Dialog1").Show
          If i = 0 Then
              Exit Do
          End If
          point = Application.Search("!", DialogSheets("Dialog1") _
              .EditBoxes("エディット 4").Text)
          If IsError(point) Then
              sheetname = ActiveSheet.Name
              refs = DialogSheets("Dialog1") _
                   .EditBoxes("エディット 4").Text
          Else
              sheetname = Left(DialogSheets("Dialog1") _
                  .EditBoxes("エディット 4").Text, point - 1)
              refs = Mid(DialogSheets("Dialog1") _
                  .EditBoxes("エディット 4").Text, point + 1)
          End If
          Worksheets(sheetname).PageSetup.PrintArea = refs
          Worksheets(sheetname).PrintOut
      Loop While True
  End Sub
  Sub 印刷_Click()
      i = 1
  End Sub
  Sub フォーム 1_Show()
      DialogSheets("Dialog1").Buttons("印刷").DefaultButton = True
      DialogSheets("Dialog1").Buttons("印刷").DismissButton = True
      DialogSheets("Dialog1").Buttons("終了").CancelButton = True
      DialogSheets("Dialog1").EditBoxes("エディット 4").Text = ""
      DialogSheets("Dialog1").EditBoxes("エディット 4") _
          .InputType = xlReference
      DialogSheets("Dialog1").Focus = "エディット 4"
  End Sub

Keywords: KBHOWTO KB401621
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system