Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル均等割付の右側欠落の対策を考えました
記事No16807
投稿日: 2011/06/13(Mon) 17:10
投稿者あならいざ
OS:XP
Access Version:2000

過去にAccess2000における均等割付の右側が欠落する問題がありましたが、有効な解決策がありませんでした。
このたび、必要にかられて対策方法を考えましたので、投稿します。

レポートのテキストボックスに連結されたラベルで欠落部分の補完をする手法です。
よって、連結されたラベルを使用している場合は、独立したラベルを追加する必要があります。
また、連結されたラベルが無い場合は、テキストボックスにラベルを追加する必要があります。
連結されたラベルは存在さえすれば、内容は問いません。

まず、次のサブルーチンをモジュールに置きます。
記述中の
Const Ofs As Long = 30
は、試行値ですので、環境によって変更する必要がありそうです。

Public Sub AdjustDistribute(Rep As Report)
Const Ofs As Long = 30
Dim Ct1 As Control
Dim Ct2 As Control

For Each Ct1 In Rep.Controls
If Ct1.ControlType = acTextBox Then
If Ct1.TextAlign = 4 Then
If Ct1.Controls.Count = 1 Then
Set Ct2 = Ct1.Controls(0)
Ct2.TextAlign = 3
If Ct1.FontItalic Then
Ct2.Caption = Right(Ct1, 1) & " "
Else
Ct2.Caption = Right(Ct1, 1)
End If
Ct2.BorderStyle = Ct1.BorderStyle
Ct2.BorderWidth = Ct1.BorderWidth
Ct2.SpecialEffect = Ct1.SpecialEffect
Ct2.ForeColor = Ct1.ForeColor
Ct2.BackColor = Ct1.BackColor
Ct2.FontName = Ct1.FontName
Ct2.FontSize = Ct1.FontSize
Ct2.FontWeight = Ct1.FontWeight
Ct2.FontItalic = Ct1.FontItalic
Ct2.FontUnderline = Ct1.FontUnderline
Ct2.Top = Ct1.Top
Ct2.Left = Ct1.Left
Ct2.Height = Ct1.Height
Ct2.Width = Ct1.Width
Ct2.TopMargin = Ct1.TopMargin
Ct2.BottomMargin = Ct1.BottomMargin
Ct2.LeftMargin = Ct1.LeftMargin
If Ct2.Tag <> "AdjustDistribute" Then
Ct2.Tag = "AdjustDistribute"
Ct2.BackStyle = Ct1.BackStyle
Ct1.BackStyle = 0
If Ct1.FontItalic Then
If Ct1.RightMargin < Ct1.FontSize * 10 Then
Ct2.RightMargin = 0
Ct1.RightMargin = Ct1.FontSize * 10 + Ofs
Else
Ct2.RightMargin = Ct1.RightMargin - Ct1.FontSize * 10
Ct1.RightMargin = Ct1.RightMargin + Ofs
End If
Else
Ct2.RightMargin = Ct1.RightMargin
Ct1.RightMargin = Ct2.RightMargin + Ofs
End If
End If
End If
End If
End If
Next
End Sub

そして、レポートのセクションのFormatイベントに例えば

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Call AdjustDistribute(Me)
End Sub

と記述し、レポートを開けばOKです。
イタリック体、右マージンなどにも対応しました。
不具合などあればご教授ください。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る