VSTO を使用して、Excel スプレッドシートから名前付き範囲のリストを取得します。
public List<Name> GetNamedRanges(Workbook activeWorkbook)
{
List<Name> namedRanges = new List<Name>();
Name name;
for (int i = 0; i < activeWorkbook.Names.Count; i++)
{
name = activeWorkbook.Names.Item(i + 1);
if (!name.Value.Contains("#REF"))
{
namedRanges.Add(name);
}
}
return namedRanges;
}
これは名前を奇妙な順序で返します。
名前の範囲を列の順序で並べ替える簡単な方法はありますか。例えば:
=Sheet1!$A$9:$B$172
=Sheet1!$C$9:$D$172
=Sheet1!$E$41:$F$172