レポートに取り消し線(打ち消し線)をひく

f:id:accs2014:20181103170917p:plain:right:w600

 レポートで、条件を満たす行に取り消し線(各コントロールにかかるような、長い水平線)をひくというものです。
 VBAで直線コントロールの表示非表示を切り替えるのがオーソドックスなやり方ですが、ここではあえて非連結のテキストボックスで代用し、通常のコントロール設定で実現してみます。

 例としてこのようなレポートで、「販売終了日」に値がある場合に取り消し線をひくものとします。


f:id:accs2014:20181103170927p:plain:right:w650

 デザインビューです。
 横に長い、非連結のテキストボックスを置きます。
 コントロールソースは長いスペース(※)とし、背景スタイルと境界線スタイルはともに「透明」にします。
 さらにフォントを小さくします。ここでは「6」としています。 
 なお、テキストボックスの高さもある程度確保する必要があります。この例では0.317cmとしています。

 ※具体的には「="               "」といった値になります。


f:id:accs2014:20181103170924p:plain:right:w650

 さらにこのテキストボックスに条件付き書式を設定します。
 具体的には「販売終了日」列の値がNullでないときに下線を引くという設定をします。設定値の詳細については画像を参照ください。

 設定は以上で終了です。
 テキストボックスの条件付き書式により直線の代用にしようというのはアイデアとしては単純です。しかし、例えば背景色の切り替えで代用しようとしても条件付き書式では背景色を透明にすることができないのでうまくいきません。そこで、文字の下線で代用しようというわけです。テキストボックスの高さをある程度保ち、フォントを小さくするというのは、下線が見えないのを防ぐためです。


f:id:accs2014:20181103170921p:plain:right:w600

 印刷プレビューです。
 線の長さ(スペースの数)などはプレビューを見ないとわかりませんので、この画面を見ながら調整することとなります。
 画像は調整後の様子です。