VB6「色の設定」ダイアログを表示する

スポンサーリンク

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

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

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

サンプルコード

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

VB6.0 以前
    ' 初期選択する色を設定する
    CommonDialog1.Color = Text1.BackColor

    ' 初期選択を有効にする
    CommonDialog1.Flags = CommonDialog1.Flags Or MSComdlg.ColorConstants.cdlCCRGBInit

    ' カスタム カラーを表示した状態にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or MSComdlg.ColorConstants.cdlCCFullOpen

    ' 色の作成ボタンを無効にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or MSComdlg.ColorConstants.cdlCCPreventFullOpen

    ' [ヘルプ] ボタンを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or MSComdlg.ColorConstants.cdlCCHelpButton

    ' Flags の属性はこのように同時に選択するのが一般的である
    'CommonDialog1.Flags = cdlCCRGBInit Or cdlCCFullOpen Or cdlCCHelpButton

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

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

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

    ' [キャンセル] ボタンが選択されなかった場合は、選択した色を Text1 に適用する
    If Err.Number <> ErrorConstants.cdlCancel Then
        Text1.BackColor = CommonDialog1.Color
    End If

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

関連するリファレンス

準備中です。

スポンサーリンク