VBAの質問です。セルに名前をつけて、指定したいのですが、ブック名からいくのはどうしたらいいのでしょうか?


range("ブック名.xls!シート名!セルの名前")でいいような気がするのですが、うまくいきません。
ほんの少し間違っているだけだと思うので、ブック名から指定してある事例を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/06/06 17:36:44
  • 終了:2009/06/06 19:56:04

ベストアンサー

id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/06/06 17:42:24

ポイント60pt

名前はシート単位ではなくてブック単位で記録されているので

range("ブック名.xls!セルの名前")

http://hatena.ne.jp/dummy

id:kaiketsu

ばっちりです。

2009/06/06 19:55:40

その他の回答(1件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912009/06/06 17:40:28

ポイント10pt

VBA での記述は下記のようになります。


Workbooks("ブック名").WorkSheets("シート名").Range("セルの名前")

http://home.att.ne.jp/zeta/gen/excel/c03p05.htm

id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/06/06 17:42:24ここでベストアンサー

ポイント60pt

名前はシート単位ではなくてブック単位で記録されているので

range("ブック名.xls!セルの名前")

http://hatena.ne.jp/dummy

id:kaiketsu

ばっちりです。

2009/06/06 19:55:40
  • id:Mook
    いろいろな指定方法がありそうですね。
    http://blog.livedoor.jp/akf0/archives/51294154.html

    kn1967 さんのバリエーションでは、
     (1)Range("シート名!セルの名前")
     (2)Range("ブック名.xls!セルの名前")
     (3)Range("[ブック名.xls]シート名!セルの名前")
    のどれでもいけるようです。

    もちろんBook が異なる場合には(2)、(3)になるでしょうけれど。
    もっとも同じブック内なら、Range("セルの名前") だけですから、質問されないでしょうが。
  • id:kn1967
    シート名を入れることも可能だったとは!! 勉強になります!!

    再びテストしてみた・・・。
    (1)Debug.Print Range("Book1.xls!セルの名前")(1, 1).Value
    (2)Debug.Print Range("[Book1.xls]Sheet1!セルの名前")(1, 1).Value
    この二点の場合であれば別のブックからでもターゲットを拾える。
    (3)Debug.Print Range("Sheet1!セルの名前")(1, 1).Value
    この場合は他のブックがセレクトされているとエラーになる。
    (4)Debug.Print Workbooks("Book1.xls").Range("名前")(1, 1).Value
    これはエラーになるので、シート指定は必須となりますね。

    いずれにしても名前はシート単位ではないので
    どのような場面で使われるのか面白いところではありますね。
  • id:Mook
    kn1967 さん、
    お気遣いありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません