演算コントロールでAccessフォームとレポートに計算値を表示する|非連結テキストボックスの入力式・集計表示・ページ番号設定とMOS試験対策

Accessのフォームやレポートを使い始めると、「テーブルに保存されていない計算値を表示したい」という場面が出てきます。単価×数量の小計、入社日からの勤続年数、氏名を結合した表示名など、これらを実現するのが演算コントロールです。

演算コントロールとはフォームまたはレポートに配置した非連結のテキストボックスに = から始まる計算式を入力することで、データを加工して表示する仕組みです。クエリに演算フィールドを作らなくてもフォーム側で計算を完結でき、レポートのグループフッターやレポートフッターにSUM・COUNTなどの集計結果を表示する場合も同じ手法を使います。

本記事では演算コントロールの設置手順から、実務でよく使う計算式一覧・エラー対処・レポートへの集計表示・ページ番号の設定まで体系的に解説します。MOS Access試験の頻出チェックリストと演習シナリオも付属しています。

連結・非連結・演算コントロールの3分類とコントロールソース設定の違いを示す比較図
目次

連結コントロールと演算コントロールの違い

Accessのフォームやレポートに配置するコントロールは、コントロールソース(プロパティシートの「データ」タブ)の設定によって3種類に分かれます。

種類コントロールソース用途
連結コントロールフィールド名(例: [氏名])テーブルやクエリのフィールドを直接表示・編集する
非連結コントロール空白ユーザーが入力する一時的な入力欄など
演算コントロール=から始まる式(例: =[単価]*[数量])計算値・加工値・集計値を表示する(読み取り専用)

演算コントロールはコントロールソースに = で始まる式を入力するだけで動作します。フォームはレコードソース(紐づいたテーブル・クエリ)のフィールドを参照でき、レポートも同様です。

フォームに演算コントロールを設置する手順

テキストボックスを追加してコントロールソースを入力する

  1. フォームをデザインビューで開く
  2. 「フォームデザイン」タブの「テキストボックス」ボタンをクリックして、フォーム上の任意の位置にドラッグで配置する
  3. 配置したテキストボックスを選択した状態でプロパティシートを開く(F4キー、またはデザインタブの「プロパティシート」ボタン)
  4. 「データ」タブの「コントロールソース」欄に計算式を入力する(例: =[単価]*[数量]
  5. 「書式」タブでフォント・書式・名前などを設定する
  6. フォームビューに切り替えて計算結果が正しく表示されるか確認する

式ビルダーを利用する方法

コントロールソース欄の右端にある「…」ボタンをクリックすると式ビルダーが開きます。フィールド名・関数・演算子を選択して式を組み立てられるため、フィールド名のスペルミスを防げます。慣れてきたら直接入力のほうが速いですが、はじめは式ビルダーを使うとミスが減ります。

フォームでよく使う演算コントロールの計算式一覧

目的コントロールソースの式備考
単価×数量の小計=[単価]*[数量]括弧は省略可
税込金額(消費税10%)=[単価]*[数量]*1.1書式を「通貨」にすると見やすい
氏名(姓+名)の結合=[姓] & ” ” & [名]&は文字列連結演算子
今日の日付から年齢を計算=DateDiff(“yyyy”,[生年月日],Now())厳密には誕生日前後の補正が必要
入社日からの勤続年数(年)=DateDiff(“yyyy”,[入社日],Now())年単位の差分
入社日からの勤続日数=Now()-[入社日]書式を「標準」の整数に設定する
残り日数(期限まで)=[期限日]-Now()書式を整数に設定。マイナスで期限超過
Nullを0として計算=Nz([売上金額],0)+Nz([割引額],0)Nullが含まれる場合はNzで変換
今日の日付を表示=Now()書式「日付(短い形式)」などに設定
レコードのID番号を整形表示=”注文番号: ” & [注文ID]文字列と数値の連結
Nz関数によるNullエラー防止とIIf関数によるゼロ除算回避を示す計算式の図解

計算式を書くときの注意点

フィールド名の参照方法

演算コントロールの式でフィールドを参照するときは [フィールド名] のように角括弧で囲みます。フィールド名にスペースや日本語が含まれる場合も角括弧が必要です。フォームに配置した他のコントロールを参照する場合も同じ書式 [コントロール名] で参照できます。

別フォームのコントロールを参照する場合は Forms![フォーム名]![コントロール名] の形式を使います。ただし参照先フォームが閉じているとエラーになるため、通常は同じフォーム内の参照で設計するほうが安全です。

Nzを組み合わせてNullエラーを防ぐ

演算コントロールでは参照先フィールドの値がNullのとき、式全体の結果がNullまたは#エラーになることがあります。特に数値フィールドを乗算・除算する場合はNz関数でNullを0や空文字に変換してから計算します。

=Nz([単価],0)*Nz([数量],0)

除算のゼロ除算を防ぐ

除数がゼロになり得る計算(例: 達成率 = 実績 / 目標)ではIIfでゼロ除算を回避します。

=IIf(Nz([目標],0)=0,0,[実績]/[目標])
レポートのセクション構造とグループフッター・レポートフッターの集計範囲の違いを示す図解

レポートのフッターに集計値を表示する

レポートの演算コントロールで特に重要なのが集計関数(SUM・COUNT・AVGなど)です。グループフッターやレポートフッターに集計値を表示する手順を解説します。

グループフッターとレポートフッターの違い

セクション集計範囲表示タイミング
グループヘッダーグループ開始時グループの最初に1回
グループフッターグループ内のレコード全件グループの最後に1回
レポートフッターレポート全体のレコード全件レポートの末尾に1回
ページフッターページ単位(集計には不向き)各ページの末尾に1回

集計演算コントロールの式一覧

目的コントロールソースの式
合計=Sum([売上金額])
件数(全レコード数)=Count(*)
件数(特定フィールドの非Null数)=Count([受注ID])
平均=Avg([売上金額])
最大値=Max([売上金額])
最小値=Min([売上金額])
合計のNullガード=Nz(Sum([売上金額]),0)

グループフッターに =Sum([売上金額]) を配置した場合、そのグループ内の [売上金額] の合計が表示されます。同じ式をレポートフッターに配置するとレポート全体の合計になります。同じ式でも配置するセクションによって集計範囲が異なります。

集計演算コントロールの設置手順

  1. レポートをデザインビューで開く
  2. グループフッターが非表示の場合は「グループ化と並べ替え」でグループを選択し「フッターセクションあり」に変更する
  3. グループフッターにテキストボックスを追加する
  4. プロパティシートの「コントロールソース」に =Sum([売上金額]) と入力する
  5. 書式タブで「書式」を「通貨」に設定し、桁区切りが正しく表示されるか確認する
  6. 印刷プレビューで各グループの小計が正しく集計されているか確認する

ページ番号・総ページ数の設定

レポートのページフッターやページヘッダーにページ番号を表示するには、専用の組み込み変数を使った演算コントロールを配置します。

表示したい内容コントロールソースの式表示例
現在のページ番号=[Page]3
総ページ数=[Pages]10
「X / Y ページ」形式=[Page] & ” / ” & [Pages] & ” ページ”3 / 10 ページ
「第X頁」形式=”第” & [Page] & “頁”第3頁
「P.X」形式=”P.” & [Page]P.3

ページ番号の演算コントロールは通常ページフッターに配置します。Accessでは「デザイン」タブ→「ページ番号」ボタンからウィザードを使って自動設置することもでき、ウィザードが生成した式がそのまま演算コントロールのコントロールソースになっています。

IIf関数で在庫数に応じて表示を条件分岐する演算コントロールの仕組みの図解

IIfで演算コントロールを条件付きで制御する

演算コントロールの式の中にIIf関数を組み込むことで、条件に応じて異なる値を表示できます。

目的式の例
在庫が少ない場合に「要発注」と表示=IIf([在庫数]<10,”要発注”,”在庫あり”)
売上が目標以上かどうかを○×で表示=IIf([売上]>=[目標],”○”,”×”)
Nullの場合に「未割当」と表示=IIf(IsNull([担当者]),”未割当”,[担当者])
数値の正負で表示を切り替える=IIf([差額]>=0,”黒字”,”赤字”)

さらに「条件付き書式」と組み合わせると、演算コントロールの背景色や文字色を動的に変えることができます。MOS試験では演算コントロールの式入力と条件付き書式の設定を組み合わせた問題が出ることもあります。

MOS Access試験での頻出パターン

MOS試験頻出チェックリスト

チェック項目正しい操作
演算コントロールの追加場所プロパティシートの「データ」タブ→「コントロールソース」欄に =から始まる式を入力する
フィールドの参照形式[フィールド名] と角括弧で囲む(スペースや日本語を含む名前でも同じ)
レポートの合計を表示する場所グループフッターまたはレポートフッターにSum関数の演算コントロールを配置する
全レコード件数を表示する式=Count(*) を使う
ページ番号の式=[Page] または =[Page] & “/” & [Pages] をページフッターに設置する
式の先頭文字演算コントロールのコントロールソースは必ず = から始める
Nullを含む演算でのエラー回避Nz([フィールド名],0) でNullを0に変換してから計算式に使う

試験問題の傾向

MOS Access試験では、「フォームの指定されたテキストボックスに2つのフィールドの積を表示せよ」や「レポートのフッターに売上合計を表示するコントロールを追加せよ」という形式で出題されます。コントロールソースに正しい式を入力できるかどうかが採点ポイントです。

ページ番号の問題では「ページフッターに”X / Y”形式のページ番号を表示せよ」という出題があり、=[Page] & " / " & [Pages] の式を入力することが求められます。試験前にページ番号ウィザードが生成した式を確認しておくと理解が深まります。

実践演習シナリオ

演習1 注文フォームに小計・税込額を自動計算して表示する

受注テーブルには [商品名]・[単価]・[数量] フィールドがあります。フォームに小計と税込額を表示する演算コントロールを追加します。

  1. 受注フォームをデザインビューで開く
  2. 詳細セクションにテキストボックスを2つ追加する
  3. 1つ目のコントロールソースに =[単価]*[数量] と入力し、名前を「小計」とする
  4. 2つ目のコントロールソースに =[単価]*[数量]*1.1 と入力し、名前を「税込額」とする
  5. 両コントロールの書式を「通貨」に設定する
  6. フォームビューで各レコードの小計と税込額が正しく計算されることを確認する

演習2 売上レポートのグループフッターに支店別小計を表示する

売上テーブルには [支店名]・[売上金額] フィールドがあります。支店ごとに売上合計と件数を集計するレポートを作ります。

  1. 売上レポートをデザインビューで開く
  2. 「グループ化と並べ替え」で [支店名] のグループにフッターセクションを追加する
  3. グループフッターにテキストボックスを2つ追加する
  4. 1つ目のコントロールソースに =Sum([売上金額]) と入力して書式を「通貨」に設定する
  5. 2つ目のコントロールソースに =Count(*) & " 件" と入力する
  6. レポートフッターに =Sum([売上金額]) を配置して全体合計も表示する
  7. 印刷プレビューで支店別小計と全体合計が正しく集計されるか確認する

演習3 レポートのページフッターにページ番号と印刷日を表示する

  1. レポートをデザインビューで開く
  2. ページフッターに2つのテキストボックスを追加する
  3. 左側のコントロールソースに ="印刷日: " & Format(Now(),"yyyy/mm/dd") と入力する
  4. 右側のコントロールソースに =[Page] & " / " & [Pages] & " ページ" と入力する
  5. 右側のコントロールは「書式」タブの「テキスト配置」を「右揃え」に設定する
  6. 印刷プレビューで各ページのフッターに印刷日とページ番号が正しく表示されることを確認する

まとめ:演算コントロールでAccessの表示力を高める

本記事のポイントをまとめます。

  • 演算コントロールはプロパティシートの「コントロールソース」に = で始まる式を入力することで計算値を表示する非連結テキストボックス
  • フォームではフィールド間の掛け算・文字列連結・日付差など、レコード単位の計算をクエリ側に処理させずにフォームで完結できる
  • レポートのグループフッター・レポートフッターにSUM・COUNT・AVGを配置することで小計・合計・件数を自動集計できる。同じ式でも配置するセクションで集計範囲が変わる
  • ページ番号は =[Page]・総ページ数は =[Pages] を組み合わせた式をページフッターに設置する
  • Nullを含むフィールドを演算に使う場合はNzで変換してから計算する。ゼロ除算はIIfで条件分岐して防ぐ
  • MOS試験では「特定テキストボックスのコントロールソースに計算式を入力」「フッターに集計演算コントロールを追加」「ページ番号の式を設定」の3パターンが頻出

演算コントロールはクエリに演算フィールドを増やさずにフォーム・レポート側で計算を実装できる柔軟な機能です。まずは既存の受注フォームやレポートに小計や合計のテキストボックスを追加して、プロパティシートへの式入力を体験することから始めましょう。

PR

MOS Excel 365 対策テキスト&問題集

MOS試験の出題パターンと操作手順を体系的に学べる定番対策書。フォーム・レポートの演算コントロール設定はAccess試験と操作感が共通しており、Excel・Access両方のMOS試験を目指す方が試験形式に慣れるのに最適です。

PR

Microsoft Copilot for Microsoft 365活用大全

Accessを含むMicrosoft 365アプリ全体の活用法を包括的に解説した実践書。演算コントロールで構築した手動集計の自動化と、Copilotによるデータ活用の連携ポイントまで理解できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次