VSTOでのExcelアドイン開発手順

Excel
スポンサーリンク
スポンサーリンク

Excelアドイン開発について

VSTOでのExcelアドイン開発をしたくなったので、開発した記録を書きます。

VSTOでのOutlookアドイン開発手順 その1
Outlookアドイン開発 VSTOでのOutlookアドイン開発をしたくなったので、開発した記録を書きます。 開発環境 VS2017 Community,C# Windows10 Pro 64bit Outlook2016 ...

内容的には、上記のOutlookのアドイン開発と全くかわらないのですが、それでは面白くないので、今回は選択されたエクセルのセル番号を取得するコードを追加したいと思います。

開発環境

VS2017 Community,C#
Windows10 Pro 64bit
Excel 2016

手順

ストレートに以下の手順で行けると思います。

  1. 新しいプロジェクト⇒Visual C# タブ⇒ office/Sharpoint ⇒ VSTOアドイン選択 ⇒ Excel2013と2016 VSTOアドイン Visual C#⇒OK押す
  2. ソリューションができているので、ソリューションを右クリック⇒追加⇒新しい項目
  3. リボン(ビジュアルなデザイナー)を選択⇒追加Checkボックスをクリックして配置
  4. 新規追加されたリボンにCheckボタンを追加してください。
  5. Checkボックスのプロパティーにコードを追加
  6. F5でデバッグ開始(Releaseの場合は、マイコードのみに関する警告がでます。)
  7. Excel上で動作を確認します。アドインタブを選択します。
  8. Checkボックスのチェックをオンにして、セルの選択を変更すると、どのセルを選択したかを表示するメッセージボックスが現れます。
  9. 以上で大まかな手順は終了。

詳細手順(画像をみながら)

  1. 新しいプロジェクト⇒Visual C# タブ⇒ office/Sharpoint ⇒ VSTOアドイン選択 ⇒Excel2013と2016 VSTOアドイン Visual C#⇒OK押す

  2. ソリューションができているので、ソリューションを右クリック⇒追加⇒新しい項目
  3. リボン(ビジュアルなデザイナー)を選択⇒追加Checkボタンをクリックして配置
  4. 新規追加されたリボンにCheckボタンを追加してください。
  5. Checkボタンのプロパティーにコードを追加・Ribbonクラス内
  6. public partial class Ribbon1
    {
    
        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {
        }
    
        // 1行追加
        Microsoft.Office.Interop.Excel.Worksheet activeSheet;
    
        // プロパティで追加した関数内にコード追加
        private void CheckBox1_Click(object sender, RibbonControlEventArgs e)
        {
            if(checkBox1.Checked)
            {
                activeSheet = Globals.ThisAddIn.Application.ActiveSheet;
    
               // イベントハンドラの追加を行います。
                activeSheet.SelectionChange
                    += new Microsoft.Office.Interop.Excel.DocEvents_SelectionChangeEventHandler(SelectionChanged);
            }
            else
            {
                // イベントハンドラの削除を行います。
                if (activeSheet != null) {               
                    activeSheet.SelectionChange
                      -= new Microsoft.Office.Interop.Excel.DocEvents_SelectionChangeEventHandler(SelectionChanged);
                }
            }
    
        }
    
        // 変化した際に呼ばれる関数を追加
        private void SelectionChanged(Microsoft.Office.Interop.Excel.Range _target)
        {
            int col = _target.Column;
            int row = _target.Row;
            System.Windows.Forms.MessageBox.Show("SelectionChanged " + "col:" + col.ToString() + "," + "row:" + row.ToString());
        }
    }
    
  7. F5でデバッグ開始(Releaseの場合は、マイコードのみに関する警告がでます。)
  8. Excel上で動作を確認します。アドインタブを選択します。
  9. Checkボタン(Chechボックス)のチェックをオンにして、セルの選択を変更すると、どのセルを選択したかを表示するメッセージボックスが現れます。
  10. 以上で詳細手順は終了です。
タイトルとURLをコピーしました