3.罫線について(2)
【ビジネス帳票ノートのVBA】
[戻る]
■概要説明
- システム手帳のようにフォームレイアウトが固定的なときは、下記の罫線作成方法が便利
かと思います。適当に下図の様に4つの直線をレポートに描き名前を付けます。
- A5サイズシステム手帳は、直線1の左位置は1.1cm 直線2の左位置は14.5cm 直線3の上位置は2.1cm直線4の上位置は20.43cmに設定しています。ほとんどのフォームの行間は、0.47cmで39行表示です。
- この4本の直線はガイドとして使うのでプロパティーで可視「いいえ」にし、非表示に設定しています。 このガイドが有れば、上から何本目の直線から何本目まで直線を引くかをVBAで指定できます。
■ノートを作ります。
上図のイメージのように、上から30行まで横罫線だけで、残り9行は縦罫線を入れ6列の升目にします。
Option Compare Database
Option Explicit
Const TW = 567 'twip値を定数として宣言します
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Dim I As Integer
Dim Kankaku As Single
Dim Maai As Single
直線1.Left = 1.1 * TW
直線2.Left = 14.5 * TW
直線3.Top = 2.1 * TW
直線4.Top = 20.43 * TW
Me.Line (直線1.Left, 直線3.Top)-(直線2.Left, 直線4.Top), , B
'外枠を作ります
Kankaku = (直線4.Top - 直線3.Top) / 39 '行間隔を計算します
Maai = (直線2.Left - 直線1.Left) / 6 '列間隔を計算します
For I = 1 To 38 '外枠があるので横罫線を1本減らします
Me.Line (直線1.Left, 直線3.Top + I * Kankaku)-(直線2.Left, 直線3.Top + I * Kankaku)
Next
For I = 1 To 5 '外枠があるので縦罫線を1本減らします
Me.Line (直線1.Left + I * Maai, 直線3.Top + 30 * Kankaku)-(直線1.Left + I * Maai, 直線4.Top)
Next
End Sub
このようにガイドが有ればVBAで簡単にフォームが作れます。
■テキストボックスの境界線を罫線の代わりに使う。
テキストボックスをレポートに貼り付け、境界線スタイルを「実線」にします。
隣り合ったテキストボックスに隙間が出来ないように書式を使い調整します。
A5サイズシステム手帳の住所録などは、表形式を用いデータの有無に関わらず行数をコントロールし40行に成ったら改ページするようにしています。この時、印刷時拡張や印刷時縮小を「はい」に設定するとテキストデータの大きさにより印刷時レポートの大きさが変化し、正しく印刷されなくなります。
入力で1行の文字数を制限し、印刷時拡張や印刷時縮小を「いいえ」にすればテキストボックスの境界線を罫線の代わりに使えます。
A5サイズシステム手帳では、この方法を使っていません。この方法は、便利だし罫線のVBAを書かない分プログラムサイズが小さくなるのですが・・・・
[戻る]