VB6「フォントの設定」ダイアログを表示する

スポンサーリンク

VB6 では、CommonDialog コントロールの ShowFont メソッドを使用します。他のダイアログの機能も含まれてしまっているので、有効でないプロパティが存在します。

オプションの殆どが、Flags プロパティに集約されています。複数のオプションを選択したい場合は Or キーワードで付加する必要があります。また、面倒なことに [キャンセル] ボタンを選択したことを、エラーを起こすことによって判断することになります。

以下の例では、TextBox に設定されたフォントを初期設定とし、ダイアログでフォントの選択をすることによって、TextBox に適用しています。適用可能な属性を列挙していますが、必要のないものは削ってください。

サンプルコード

以下にサンプルコードを示します。

VB6.0 以前
    ' 初期選択するフォントを設定する
    CommonDialog1.FontName       = Text1.FontName
    CommonDialog1.FontSize       = Text1.FontSize
    CommonDialog1.FontBold       = Text1.FontBold
    CommonDialog1.FontItalic     = Text1.FontItalic
    CommonDialog1.FontUnderline  = Text1.FontUnderline
    CommonDialog1.FontStrikethru = Text1.FontStrikethru

    ' 初期選択する色を設定する
    CommonDialog1.Color = Text1.ForeColor

    ' 選択可能なフォントサイズの最大値を設定する
    CommonDialog1.Max = 24

    ' 選択可能なフォントサイズの最小値を設定する
    CommonDialog1.Min = 9

    ' Min プロパティと Max プロパティで指定された値を有効にする
    CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFLimitSize

    ' 存在しないフォントやスタイルを選択すると警告を表示する
    CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFForceFontExist

    ' 取り消し線、下線、テキストの色などのオプションを指定可能にする
    CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFEffects

    ' [ヘルプ] ボタンを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFHelpButton

    ' [適用] ボタンを表示する (表示されません)
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFApply

    ' スクリーン フォントを表示する
    CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFScreenFonts

    ' プリンタ フォントを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFPrinterFonts

    ' スクリーン フォントと、プリンタ フォントを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFBoth

    ' Ansi 文字セットだけを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFANSIOnly

    ' 固定ピッチフォント (等幅フォント) だけを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFFixedPitchOnly

    ' GDI におけるフォント表示をシミュレーションしないようにする
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFNoSimulations

    ' 画面とプリンタ両方で使用可能なフォントを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFWYSIWYG

    ' スケーラブル フォントのみを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFScalableOnly

    ' True Type フォントのみを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFTTOnly

    ' ベクタ フォントを非表示にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or FontsConstants.cdlCFNoVectorFonts

    ' Flags の属性はこのように同時に選択するのが一般的である
    'CommonDialog1.Flags = cdlCFLimitSize Or cdlCFForceFontExist Or cdlCFEffects Or cdlCFScreenFonts

    ' [キャンセル] ボタンを選択した場合はエラーを発生させる
    CommonDialog1.CancelError = True

    ' エラーをトラップしない
    On Error Resume Next

    ' ダイアログを表示する
    Call CommonDialog1.ShowFont

    ' [キャンセル] ボタンが選択されなかった場合は、選択したフォントを Text1 に適用する
    If Err.Number <> ErrorConstants.cdlCancel Then
        Text1.FontName       = CommonDialog1.FontName
        Text1.FontSize       = CommonDialog1.FontSize
        Text1.FontBold       = CommonDialog1.FontBold
        Text1.FontItalic     = CommonDialog1.FontItalic
        Text1.FontUnderline  = CommonDialog1.FontUnderline
        Text1.FontStrikethru = CommonDialog1.FontStrikethru
    End If

    ' エラー処理を通常のロジックに戻す
    On Error GoTo 0

関連するリファレンス

準備中です。

スポンサーリンク