18-3.Excelとの連携 - Excelマクロの起動

Excelを用いて伝票を印刷するには

【説明】

コンテキサーには印刷機能がありませんが、Excelと連携することで帳票を印刷できます。

帳票を印刷するためには、事前に次のような2つのワークシートがあるExcelワークブックを作成します。

  • コンテキサーからのエクスポート用シート
  • 帳票用シート

「コンテキサーからのエクスポート用シート」は、コンテキサーでExcelエクスポートを利用して、印刷するパネルのレコードをExcelワークシートへ出力できます。

【準備手順】 Excelワークブックと帳票印刷用ワークシートの作成

まず、コンテキサーの「Excelエクスポート」によって、コンテキサーで選択したシートのすべてのパネルのデータを、Excelへ出力します。

初回Excelエクスポート時には、選択したコンテキサー上のシートにある各パネルが、Excelのワークシートとして作成され、各パネルのデータが出力されます。作成されたワークブックは、通常コンテキサーデータフォルダのExcelフォルダに保存されています。

次回エクスポート時は、作成済みのワークブックを使用して、それぞれのワークシートでパネルのデータを更新します。

このままでは印刷に不向きであるため、作成されたワークブックに、帳票印刷用ワークシートを作成して追加しておきます。

帳票印刷用ワークシートを作成する際に、各欄のセルの値は、Excelエクスポートでエクスポートされるワークシートのセルとリンク接続しておきます。リンク接続することで、Excelエクスポート時に帳票に必要な値が入力された状態となります。

例えば、次のようなレイアウトの受注票を作成して、各欄のセルに、リンクを設定しておきます。
セルの式を「='ワークシート名'!セル位置」の書式で指定することでリンク接続できます。

【操作手順】印刷コマンドボタンの作成

業務アプリ上でボタンで簡単に印刷画面を表示するための[受注票印刷]ボタンを作ります。

コンテキサー側で、Excelエクスポート(「Excel連携」アクション)を実行するコマンドを定義して、そのコマンドをボタンとしてシートに表示させます。ボタンをクリックした際に「Excel連携」アクションで、該当するシートがExcelへエクスポートされます。ワークシートにマクロを定義した場合は、この時にマクロが実行されます。

「コマンド」画面にて[新規]ボタンをクリックして、コマンド名を「受注票印刷」などとします。

「アクション内容」画面にて「対象シート」をExcelエクスポートするシート(ここでは「受注登録」シート)を選択します。

[登録]ボタンをクリックすると、シートに[受注票印刷]ボタンが表示されます。

コマンドボタンの作成方法は、転送先のExcelファイル名を指定するにはもあわせてご覧下さい。

【応用】印刷プレビューを表示するには (印刷処理マクロの作成)

VBAマクロを作成することで、コンテキサー上でExcelエクスポートされた直後に、Excelの印刷プレビュー画面を表示できます。

印刷プレビュー画面を表示するには、次のようなShowDataプロシージャのマクロを作成します。
マクロは、Excelのマクロとして登録するか、VBAの標準モジュールの中に定義してください。

次のプログラムで、帳票ワークシートに切り替えて、印刷プレビューを表示します。

Public Sub ShowData()
 
    '--------------------------------------------------
    '印刷プレビューを表示する
    '--------------------------------------------------
    Sheets("印刷").Select
    ActiveWindow.SelectedSheets.PrintPreview
   
End Sub

なお、エクスポート直後に、帳票ワークシートなどに対して、特別なデータ入力や計算処理などを含むマクロを入れたい場合には、MakeDataプロシージャを作成してその中で指定することで、印刷結果に反映できます。

'----------------------------------------------------------------------------------------------------
'データ取込後処理
'----------------------------------------------------------------------------------------------------
Public Sub Makedata()

'--------------------------------------------------
' ここにデータのコピー処理や計算処理を記述します。

'--------------------------------------------------
' ここに印刷帳票内のデータ編集、印刷設定を記述します。

End Sub

【関連項目】

 

2016年7月27日 更新