3

リボン コントロールからアクティブな範囲を取得したい。リボン上のコントロールが必要な場合にのみ、選択したセルにアクセスする方法が必要です。

現在、これが私がやっている方法です。

public partial class ThisAddin
{
    private void SheetSelectionChange(object sh, Range target)
    {
        int count = target.Count;

            if (count < 5000) // This is for performance reasons 
            {
                //Set a custom range property in the office ribbon
                Req_Tool.ActiveRange = target; 
            {
    }
}

これは弱くもったいないと思います。
まず、選択が変更されるたびにコードが実行されます。次に、使用されているかどうかに関係なく、選択のコピーが 2 つあります。

私が見落としているこれを行うためのより良い方法が必要です。

4

1 に答える 1

6

Selectionオブジェクトのプロパティにアクセスすることで、アクティブシートで現在選択されている範囲にアクセスできApplicationます。

private void button1_Click(object sender, RibbonControlEventArgs e)
{
    this.ActiveRange = (Excel.Range)Globals.ThisAddIn.Application.Selection;
}

MSDNドキュメント:

于 2012-08-10T22:00:47.260 に答える