タイトル : 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 オブジェクト)は、「セル参照」であるとは限りません。 「数式」や「定数」を保持している事もあります。 また、「セル参照」であったとしても、別のシート上のセルを参照している事もあります。 |