tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: Excelのセル定義名の取得方法
投稿日: 2007/09/27(Thu) 20:28
投稿者魔界の仮面弁士
> ワークシートは1枚だけなのでxlsSheet.Names でやっていたのですが
> xlsBook.Names を試しに使用したところCountが4と表示されました

『Excel 2007』の場合は、[数式]リボンの[名前の管理]をクリックしてください。
[範囲]が 'Sheet1' になっているなら、xlsSheet.Names でも xlsBook.Names でも
取得できますが、[範囲]が 'ブック' になっているなら、xlsBook.Names が必要です。

『Excel 2003 以下』の場合は、[挿入]メニューの[定義]を開いてください。
[名前]欄の右端に 'Sheet1' と書かれていれば、xlsSheet.Names でも xlsBook.Names でも
取得できますが、[名前]欄にシート名が無いなら、xlsBook.Names が必要です。


> しかし、定義文字自体の取得をItem プロパティを使用したところ
> indexエラーが起こりました(indexには0を指定しました)
Excel 系のオブジェクトは、0 ベースではなく、1 ベースで始まる事に注意してください。

番号が 1 から始まるのは、For ループの処理を
 For n = 0 To obj.Count - 1
ではなく、
 For n = 1 To obj.Count
のように、より単純に書けるようにするための仕様らしいです。



> Range("TEST_CELL") を使用し印字はされるのを確認したんですがRange で使用している
> "TEST_CELL" が「xlsSheet 上の定義」でよろしいのでしょうか?
いいえ。おそらく、その "TEST_CELL" は「xlsBook 上の定義」だと思いますよ。
(なぜならば、xlsSheet.Names の Count は 0 だったのですから)


なお定義名(Name オブジェクト)は、「セル参照」であるとは限りません。
「数式」や「定数」を保持している事もあります。
また、「セル参照」であったとしても、別のシート上のセルを参照している事もあります。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。