VSTO C# Excelアドインでカラーパレットを使って文字色を変える方法

C#

VSTOはVisual Studio Tools for Office の略で、officeのアドインやマクロ付きドキュメントを、VB.netやc#などで記述できるフレームワークです。Visual Studioで開発することができ、VBAとオサラバできるMS公式フレームワークです。

この記事では、c#で、カラーパレットを表示して指定した色でセルの文字色を変更する方法を紹介します。

カラーパレットとは?

カラーパレットとは、色を選択するダイアログです。いろいろなものがありますが、今回使うカラーパレットダイアログは以下です。

このカラーパレットから色コードを取得して、セルの文字色に反映するというコードをこの記事で説明していきます。

カラーパレットを表示するコード

カラーパレットを表示するには、フォームにcolorDialogコントロールを追加します。

カラーパレットを表示してカラーコードを取得していきます。以下のコードを使用します。

colorDialog1.ShowDialog()でカラーパレットを表示します。色を選択してOKボタンを押すと、DialogResult.OKが返ります。キャンセルボタンが押されるとDialogResult.Cancelが返ります。

        bool getColorCode(out Color colorCode)
        {
            colorCode = Color.White;

            if(colorDialog1.ShowDialog() == DialogResult.OK)
            {
                colorCode = colorDialog1.Color;
                return true;
            }else
            {
                return false;
            }

        }

選択された色はcolorDialog1.Colorで取得できますので、これをcolorCodeという引数で呼び出し元に返却します。

Excelのセルの文字色を変更するコード

選択したセルの文字色を変更するには以下のコードで実現できます。

まず、Globals.ThisAddIn.Application.Selectionで選択セルをExcel.Rangeオブジェクトとして取得します。

その後、選択範囲が1セル以上あることを判定後、Colorプロパティに色コードを設定します。

この関数では色コードは引数としています。

        public static void ChangeFontColor(System.Drawing.Color colorCode)
        {
            Excel.Range selectedRange = Globals.ThisAddIn.Application.Selection;
            if(selectedRange != null && selectedRange.Count > 0) {
                selectedRange.Font.Color = colorCode;
            }
        }

カラーパレット表示から文字色変換までを繋げてみる

繋げてみます。まず、getColorCode関数を使ってカラーパレットを表示して色コードを取得します。色が選択された時のみ文字色を変更したいので、if文を使用してTrueが返ってきた時のみChangeFontColorを呼び出します。

if( getColorCode(out colorCode))
{
    ThisAddIn.ChangeFontColor(colorCode);
}

ソースコード全文

ソースコード全文は以下のgithubリポジトリに格納しています。

コンパイルすれば動作しますので、Visual Studioをお持ちの方は遊んでみてください。

GitHub - harus0313/cliesx
Contribute to harus0313/cliesx development by creating an account on GitHub.


【VSTO】c#でExcelアドインやマクロ付きドキュメントを開発するためのサンプルコードをまとめました!ぜひ活用ください!

  1. VSTO c# Excelブックを読み取り専用/書き込みモードにする方法

  2. VSTO C# Excelアドインでシートを追加する方法

  3. VSTO C# Excelアドインでアクティブシートを削除する方法

  4. VSTO C# Excelアドインでアクティブシートをコピーする方法

  5. VSTO C# Excelアドインでセルの左詰め・右詰め・中央寄せ・選択範囲で中央にする方法

  6. VSTO C# Excelアドインでセルの上詰め・下詰め・上下中央にする方法

  7. VSTO C# Excelアドインでクリップボードパネルを表示・非表示する方法

  8. VSTO C# Excelアドインで数式バーを表示・非表示する方法

  9. VSTO C# Excelアドインでフルスクリーンモードをオン・オフする方法

  10. VSTO C# Excelアドインで目盛り線の表示・非表示を切り替える方法

  11. VSTO C# Excelアドインでカラーパレットを使って文字色を変える方法

  12. VSTO C# Excelアドインでアクティブブックのファイルパス・フォルダパスを取得する方法

  13. VSTO C# Excelアドインでアクティブワークシートのシート名を取得する方法

  14. VSTO C# Excelアドインで行や列をグループ化・グループ化解除する方法

  15. VSTO C# Excelアドインで選択したセルをマージ(結合)したり元に戻す方法

  16. VSTO C# Excelアドインで各種ダイアログを表示する方法

コメント

タイトルとURLをコピーしました