3

セルの書式設定ダイアログを開いたときにこのマクロを停止して、色を選択し、[OK] を選択したときにスクリプトを続行できるようにすることはできますか。

Sub StripesOdd()

    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=MOD(ROW(),2)=1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.14996795556505
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Application.Goto Reference:="StripesOdd"
End Sub
4

1 に答える 1

0

はい、可能です。この道を進む前に - VBA は自動化ツールです。もし私があなただったら、ユーザーがランダムに色を設定できるようにするのではなく、データに基づいて色を設定する (つまり、フィールドが "x" の場合は青色にする) ことに多くの時間を費やします。手動の介入が必要な場合、自動化ではありません。

コードを続行する前に、ユーザーが選択を行う必要があるコードにユーザー入力を挿入する必要があります。

http://www.cpearson.com/Excel/Colors.aspxでこれを見つけまし た modColorFunctions bas ファイルが必要です

カラー ピッカー ダイアログの表示

modColorFunctions モジュールには、ChooseColorDialog という名前の関数が含まれています。この関数は、Windows のカラー ピッカー ダイアログを表示し、RGB ロング カラー値を返します。ユーザーがダイアログをキャンセルすると、結果は -1 になります。例えば、

Dim RGBColor As Long
Dim Default As Long
Default = RGB(255, 0, 255) 'default to purple
RGBColor = ChooseColorDialog(DefaultColor:=Default)
If RGBColor < 0 Then
    Debug.Print "*** USER CANCELLED"
Else
    Debug.Print "Choice: " & Hex(RGBColor)
End If

ユーザーに色を入力してもらいたい場合は、ChooseColorDialog への呼び出しを挿入する必要があります。

于 2015-04-04T04:20:48.203 に答える