ExcelVBAでシェイプのテキストや色をリストから選んだものに変更する

ExcelVBAでシェイプのテキストや色をリストから選んだものに変更する

めちゃめちゃニッチな内容だと思うんですけど、リストの参照元のセルと同じ色合いで図形の色を変更するというものを作る機会があったので履歴メモみたいな気持ちで書き残しておきます。


準備

B2~B6セルに、リストの参照元になる範囲があるとします。ここでフォント色と背景色をそれぞれ好きなものにしておくと、ここを参照してシェイプの色が変わります。その後、D2セルに「データ」→「データの入力規則」で、この範囲をリストとして設定します。

シェイプ(図形)の名称は、選択して左上の部分で確認、変更できます。デフォルトでは半角スペースが混ざっていたりするのでご注意ください。

コード

「セルが変更されたら」というイベントプロシージャを使うので、標準モジュールではなく、上記の諸々が置かれたシートモジュールへ書きます。コードは以下です。

6行目で、選択された内容がどのセルか検索しています。ただこの方法はただのテキスト検索なので、同じテキストで違う色、ということをしたい場合はもうちょっとテコ入れが必要です。

動作

これで、D2セルの内容を変更すると、

シェイプのテキスト・色・背景色が、参照されたセルと同じものになります。

以上です! 今回はかんたんに全部アクティブシートで書きましたが、参照セル範囲を別シートに設定するときなどは明示的にシートを指定する必要があります。

公開日:2018/11/26

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)