実現したいこと
カタカナ5文字につきフォントサイズを1大きくする、というコードを記述したい。例えば、txb_社名1に入るデータが「レバテック株式会社」だとして、現在のフォントサイズが20なら21に変更したい。
前提
封筒の宛名面をレポートで作成しています。他フィールドのデータの有無や文字数によってテキストボックスの配置やフォントサイズ等の設定を変更するコードを記述しています。
発生している問題・エラーメッセージ
文字数が少ないほどフォントサイズを大きく、多いほど小さくなるように設定しているのですが、基本のフォントに「HG P正楷書体」という字詰めフォントを使用しており、同じ文字数でも詰まる文字が多いとテキストボックスの大きさに対してフォントが小さいという問題が発生します。
該当のソースコード
Option Compare Database Option Explicit Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Const cm As Integer = 567 'twipsをcm表記に Dim txtW As Long '文字列の幅(文字列中央寄せ用) Dim txtboxW As Long 'テキストボックスの幅(文字列中央寄せ用) Dim checkCharacter As String '文字幅チェック用 checkCharacter = "一" '文字幅チェック用 Dim syamei_FontSize As Integer Dim syamei_Width As Integer Dim sm As Integer Dim sm1 As Integer '社名1の文字数 sm1 = Len(Nz(社名1, "")) sm = sm1 syamei_FontSize = 15 '氏名ありの場合の最大サイズ syamei_Width = 0.66 * cm '氏名ありの場合のテキストボックス幅 Select Case sm Case Is < 17 syamei_FontSize = 15 Case 17 syamei_FontSize = 15 Case Is > 17 syamei_FontSize = 14 End Select 社名1.FontSize = syamei_FontSize 社名1.Width = syamei_Width 社名1.Top = 1.7 * cm 社名1.Height = 9.7 * cm 社名1.Left = 6.4 * cm 社名1.TextAlign = 0 With Me.社名1 Me.FontName = .FontName Me.FontSize = .FontSize txtboxW = .Width txtW = Me.TextWidth(checkCharacter) .RightMargin = (txtboxW - txtW) / 2 End With End Sub
一部分を抜粋して掲載しています。不足情報ありましたら追記致します。
試したこと
ネット検索で「AccessVBA カタカナ 判別」等で検索しましたが、目的とする情報が載ったサイトを見つけることが出来ませんでした。
補足情報(FW/ツールのバージョンなど)
Microsoft Access2019
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2023/09/05 07:29
2023/09/05 07:34
退会済みユーザー
2023/09/06 01:51