2011-12-25 19 views
0

.NET 4とVS 2010を使用してExcel 2010アプリケーションアドインを作成しようと努力しています。ユーザーは一連のn個の連続するセルを選択し、リボンバーのボタンをクリックします。その後、このボタンをクリックすると、範囲のセルアドレスとセル値の両方にアクセスする必要があります。以下は私のコードです。 get_Rangeは、私が必要とするものを見つけることができる最も近い方法です。ただし、この方法では最初と最後のセルアドレスが必要です。これと同様の方法で、ユーザーが選択した入力範囲をパラメータとして使用する方法はありますか?また、選択した範囲にアクセスした後、その範囲に含まれる値を取得してデータベースに書き込む必要があります。私はrange.SelectedValuesのようなものをデータテーブルにキャストすることを想定しています。選択した値のセットにアクセスする正しい方法は何ですか?Excelで選択した範囲のアドレスとセルの値にアクセスする

ありがとうございました。私はPIAの文書で迷っていて、単純な作業でなければならないことを達成するために苦労しています。 VBAで

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.Office.Tools.Ribbon; 
using Microsoft.Office.Tools.Excel; 
using Microsoft.Office.Interop.Excel; 

namespace ExcelAddIn2 
{ 
    public partial class Ribbon1 
    { 

     private void Ribbon1_Load(object sender, RibbonUIEventArgs e) 
     { 

     } 

     private void GetRageValues() 
     { 

      Range range = Globals.ThisAddIn.Application.get_Range("A1", "A3"); 

      //to be replaced with database insert 
      System.Windows.Forms.MessageBox.Show("You Selected" + range.Address); 
     } 

     private void button1_Click_1(object sender, RibbonControlEventArgs e) 
     { 
      GetRageValues(); 

     } 

    } 
} 
+1

したいオブジェクトが 'Selection'で、このオブジェクトの種類は、依存VAYます選択されているものについては、範囲であれば 'Range'型になります。私は同等のものが 'Interop'にあるのかどうかは分かりませんが、似ているはずです –

+0

ありがとう。以下は "Range range = Globals.ThisAddIn.Application.Selection;"という範囲にアクセスするために働いています。範囲内のセル値にアクセスするためのVBAは何ですか? – hughesdan

+0

さらに手直しをした後、私はCellsオブジェクトのValue2プロパティにアクセスしてこれを理解することができました。 @Chrisあなたは答えとしてあなたのコメントを提出したいのですが、私はあなたにそれについて信用を与えることができますか? – hughesdan

答えて

0

したいオブジェクトが、それは範囲だならば、それはタイプRangeのものであろう、このオブジェクトの種類が選択されている内容によって異なりますが、Selectionです。私はInteropで同等のものが何であるか分かりませんが、似ているはずです。

(移動コメントに答えるために)

0

Excelの.NETアドインプロジェクトの場合:VBAで

 Microsoft.Office.Interop.Excel.Range SelectedRange = Globals.ThisAddIn.Application.Selection; 
関連する問題