Microsoft 製品に組み込まれている Visual Basic の実装。
詳しい回答いただきありがとうございます。
VBAのみではできないことを承知しました。
上記方法で再度挑戦してみます。ありがとうございました。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excel2016を使用しています。
ユーザー関数を作りVBAで条件付き書式のルールに使おうとしました。
しかし、設定できませんでした。
VBAでなく、手動ででルールに記入すると条件付き書式は適用されました。
手動で作成した条件付き書式は下記のとおりです。
ルール 数式「=セルの文字色($D2)=255」書式=「色」適用先「=$L$2:$L$20」
VBAで作ったプロシージャ・ユーザー定義関数等は
Sub 条件付き書式()
Range("$L$2:$L$20").FormatConditions.Add Type:=xlExpression, Formula1:="セルの文字色($D2)=255"
Range("$L$2:$L$20").FormatConditions(1).Interior.ColorIndex = 40
End Sub
Function セルの文字色(セル)
セルの文字色 = セル.Font.Color
End Function
どう編集すればVBAを使用して条件付き書式が設定できるかわかりません。どのようにVBAを修正すればよいのかお教え願います。
ちなみに、「"セルの文字色($D2)=255"」の場合はルール部分が「="セルの文字色($D2)=255"」になっていて
「"=セルの文字色($D2)=255"」とするとルール部分は「"=セルの文字色($D2)=255"」になりましたが色の設定ができなくなりました。
マクロ記録を使い、記録したマクロを実行するとエラーになりました。
バージョンは、エラーが頻繁に発生するため戻したため 2002(ビルド12527.20278)です
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
詳しい回答いただきありがとうございます。
VBAのみではできないことを承知しました。
上記方法で再度挑戦してみます。ありがとうございました。
宜しくお願いします!
こんにちは。
VBAフォーラムのほうにも投稿されたようですが、下記のようなコードにすることで実行確認できましたので、何かのご参考になれば。
Sub 条件付き書式()
Range("$L$2:$L$20").FormatConditions.Add Type:=xlExpression, Formula1:=False
Range("$L$2:$L$20").FormatConditions(1).Interior.ColorIndex = 40
End Sub
Sub setcolor()
If セルの文字色(Range("$D$2")) = 255 Then
Range("$L$2:$L$20").FormatConditions(1).Modify Type:=xlExpression, Formula1:=True
Else
Range("$L$2:$L$20").FormatConditions(1).Modify Type:=xlExpression, Formula1:=False
End If
End Sub
Function セルの文字色(セル As Range) As Long
セルの文字色 = セル.Font.Color
End Function
最初に1回だけ『 条件付き書式() 』を実行し( .Add を使っているため)、D2 セルの塗りつぶし色を判定して条件付き書式を変更するときには setcolor() を実行するようにします。
ユーザー定義関数( セルの文字色() )や条件付き書式を使うことに拘らないのであれば別の書き方もありますが・・・。
<追記>
おそらく本来のご希望としては、『セルのフォント色を変更したタイミングで自動的に他のセル範囲の背景色を変更したい』といったことかと思いますが、フォント色の変更で関数(今回の場合はユーザー定義関数)が自動再計算されないことや、WorkSheet や Workbook の既存のイベントにフォント色の変更などをトリガとして起動するものがない、などの理由から VBA だけでの実行は難しいかと思われます。
WindowsAPI などを組み合わせれば可能かもしれませんが・・・。念のため追記。
返信ありがとうございます。早速VBA専用フォーラムに投稿します。
こんにちは。
同じユーザーとしてマイクロソフト製品のサポートを行う独立アドバイザーのYuki M.です。
VBA専用のフォーラムがございますため、下記へご投稿してみてください。