ExcelオブジェクトモデルRange
では、シートの一部ではなく、セルのセットが含まれ、ブックに名前で示されているを許可すると言われています。
これらがExcelオブジェクトモデルにどのように適合するか、そしてそのようなものをプログラムで(VBAまたは.NETソースコードのいずれかで)作成する方法を誰かが私に説明できますか?
ありがとう。
ExcelオブジェクトモデルRange
では、シートの一部ではなく、セルのセットが含まれ、ブックに名前で示されているを許可すると言われています。
これらがExcelオブジェクトモデルにどのように適合するか、そしてそのようなものをプログラムで(VBAまたは.NETソースコードのいずれかで)作成する方法を誰かが私に説明できますか?
ありがとう。
あなたの質問は少し漠然としていますが、試してみます。
デイブが説明しているように、シート上の特定の範囲のセルに「範囲名」を付けて、プログラムで参照できますが、それはあなたが求めているようには聞こえません。
「どのワークシートにも文字通り存在しない、VBA コードで使用できるセルの抽象的な RANGE はありますか?」と尋ねているように聞こえます。これに対する答えはノーです。名前付き範囲であっても、実際のワークシート上の実際のセル セットへの便利な参照にすぎません。
ただし、プログラムでワークシートを非表示にしてユーザーに見えないようにし、そのシートのセルと範囲を操作することはできます。ただ行う:
Sheets("Sheet1").Visible = xlSheetHidden
Sheets("Sheet2").Visible = xlSheetVeryHidden
Sheets("Sheet3").Visible = xlSheetVisible
「非常に隠された」とは何ですか?これは、ユーザーが [書式]、[シート]、[再表示] に移動して、シートを表示できないことを意味します。
したがって、あなたが何を望んでいるのかを正しく理解している場合は、プログラムでシートの1つを非表示にし、Daveの手法を使用して、この非表示(またはVeryHidden)シートの範囲への名前付き参照を作成します.
それは名前付き範囲になります。選択したセルを参照して、数式バーの横にある「A1」と表示されている場所に名前を入力するだけです。これにより、変更されない名前付き範囲が作成されます。
または、数式に基づく名前付き範囲を作成することもできます。これにより、スプレッドシートのデータが変更されると変更される可能性があります。これは、[名前の定義] オプション (Office 2010 の数式リボンにあります) から行います。
名前付き範囲には VBA からアクセスできますが、.net からもアクセスできます。
したがって、次のように vba から名前付き範囲にアクセスします。
Range["MyNamedRange"]
はい、 VSTO の名前空間にNamedRangeコントロールがありMicrosoft.Office.Tools.Excel
ます。これは、名前空間のネイティブRangeコントロール とは異なるホスト コントロールです。Microsoft.Office.Interop.Excel.Range