Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1978 / 13645 ツリー ←次へ | 前へ→

【70679】アドレスを指定して名前を取得する りんご 11/12/16(金) 11:40 質問[未読]
【70680】Re:アドレスを指定して名前を取得する kanabun 11/12/16(金) 11:54 発言[未読]
【70681】Re:アドレスを指定して名前を取得する kanabun 11/12/16(金) 11:59 発言[未読]
【70683】Re:アドレスを指定して名前を取得する りんご 11/12/16(金) 12:13 質問[未読]
【70685】Re:アドレスを指定して名前を取得する UO3 11/12/16(金) 12:31 発言[未読]
【70686】Re:アドレスを指定して名前を取得する UO3 11/12/16(金) 12:46 回答[未読]
【70682】Re:アドレスを指定して名前を取得する Jaka 11/12/16(金) 12:12 発言[未読]
【70687】Re:アドレスを指定して名前を取得する りんご 11/12/16(金) 13:16 お礼[未読]

【70679】アドレスを指定して名前を取得する
質問  りんご  - 11/12/16(金) 11:40 -

引用なし
パスワード
   またまた、名前について質問です。
よろしくお願い致します。

名前:AtoB
範囲:Sheet1!$A$1:$B$10

この時、A3を指定すると、AtoB を持ってきたいのですが、

Range(A3). 

でAtoBを持ってくることはできるのでしょうか?

【70680】Re:アドレスを指定して名前を取得する
発言  kanabun  - 11/12/16(金) 11:54 -

引用なし
パスワード
   ▼りんご さん:

>名前:AtoB
>範囲:Sheet1!$A$1:$B$10
>
>この時、A3を指定すると、AtoB を持ってきたいのですが、

ううむ、ちょっと意味がぁ?

とりあえず、
>Range(A3). 
は無いでしょう。"A3"というのはセルにつけられた名前ですよね?
 Range("A3").

【70681】Re:アドレスを指定して名前を取得する
発言  kanabun  - 11/12/16(金) 11:59 -

引用なし
パスワード
   ▼りんご さん:

思うに、

>この時、A3を指定すると、AtoB を持ってきたいのですが、

この「A3を指定する」を説明してもらえるか、「指定する」を他の言葉で
言い換えてもらえると、質問が具体的になるような気がしますが、
いかがですか?
[A3]セルが選択されたら?
とか?

【70682】Re:アドレスを指定して名前を取得する
発言  Jaka  - 11/12/16(金) 12:12 -

引用なし
パスワード
   大雑把ですみません。

Dim Rg As Range
For Each Nm In ThisWorkbook.Names
  Set Rg = Application.Intersect(Selection, Range(Nm.Name))
  If Not Rg Is Nothing Then
    MsgBox Nm.Name
  End If
Next
Set Rg = Nothing

【70683】Re:アドレスを指定して名前を取得する
質問  りんご  - 11/12/16(金) 12:13 -

引用なし
パスワード
   すみません。
間違えました。

range("A3").?   で、AtoB を持ってくることはできますか?

現在、持っている情報は、シート名、インデックス、アドレス($A$3) です。

この情報から、AtoB を持ってきたいのですが、Activeworkbook.names...で1つづつチェックしていくしか方法はないでしょうか?

【70685】Re:アドレスを指定して名前を取得する
発言  UO3  - 11/12/16(金) 12:31 -

引用なし
パスワード
   ▼りんご さん:

こんにちは

指定したセル(たとえばA3)が含まれる領域につけられた名前を取得したいということでしょうか?
もし、A3が含まれる領域が複数あればどうしましょう?

【70686】Re:アドレスを指定して名前を取得する
回答  UO3  - 11/12/16(金) 12:46 -

引用なし
パスワード
   ▼りんご さん:

もし、↑の理解であっているなら

>この情報から、AtoB を持ってきたいのですが、Activeworkbook.names...で1つづつチェックしていくしか方法はないでしょうか?

そうするしかないとおもいますねぇ。

Sub Test()
  Dim myShn As String
  Dim myR As Range
  Dim nm As Name
  
  myShn = "Sheet1"
  Set myR = Sheets(myShn).Range("A3")
  
  For Each nm In ActiveWorkbook.Names
    If nm.RefersToRange.Parent.Name = myShn Then
      If Not Intersect(nm.RefersToRange.Cells, myR) Is Nothing Then
        MsgBox nm.Name
      End If
    End If
  Next
  
  Set myR = Nothing
  
End Sub

【70687】Re:アドレスを指定して名前を取得する
お礼  りんご  - 11/12/16(金) 13:16 -

引用なし
パスワード
   みなさま

ありがとうございます。
やはり、For文で回していくしかないのですね。

コーディング、コピペさせて頂きます。

ありがとうございました。


P.S
こちらのサイトは、時系列に並ぶわけではないのですね。

1978 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free