• ベストアンサー

Excelで、任意の座標が属するセルのAddress

エクセルで、セルの左上の座標を取得することは簡単ですが、任意の座標が属するセルのアドレスって取得することってできますか? たとえば、X100、Y100の座標は、セルアドレスB5のセルの中に含まれるってな関数がVBAでほしいです。 どなたか詳しい方いらっしゃいましたら教えてください。宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

座標のアドレス取得を思いつかなかったので、一旦、その座標にダミーのオブジェクトを置いて、その場所のセルアドレスを取得してみました。 もちろんダミーは取得後削除してます。 Sub TEST() x = 100 y = 100 Set dmy = ActiveSheet.Shapes.AddShape(msoShapeRectangle, y, x, 10#, 10#) MsgBox dmy.TopLeftCell.Address dmy.Delete Set dmy = Nothing End Sub

wan_wan
質問者

お礼

お返事ありがとうございます。 なるほど、仮に書いてしまえばいいんですね!! 参考にして活用させて頂きます。

その他の回答 (4)

回答No.5

#4の追記です。 > For i = BClm To BClm + 15 > For j = BRow To BRow + 30 この部分は、表示画面内の列数と行数が、せいぜい15列・30行という 前提でのものです。 また、表示画面を超えるような座標が指定された場合のエラー処理は 行なっていませんので、悪しからずご了承願います。 (^^ゞ

回答No.4

ユーザー関数を試みてみました。 =PNT(100,100) または =PNT(A1,A2) の形式で使用します。 なお、座標数値はシートの絶対座標ではなく、表示画面の左上端セルの 左上角を 0,0 とした相対座標です。 Function PNT(myX, myY)  Dim BRow, BClm, BTop, BLft, i, j  BRow = ActiveWindow.VisibleRange.Cells(1, 1).Row  BClm = ActiveWindow.VisibleRange.Cells(1, 1).Column  BLft = ActiveWindow.VisibleRange.Cells(1, 1).Left  BTop = ActiveWindow.VisibleRange.Cells(1, 1).Top  For i = BClm To BClm + 15   If Columns(i).Left > myX + BLft Then Exit For  Next  For j = BRow To BRow + 30   If Rows(j).Top > myY + BTop Then Exit For  Next  PNT = Cells(j - 1, i - 1).Address End Function

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

邪道ですが(^^; Sub Macro2()  ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 10, 10).Select  MsgBox Selection.TopLeftCell.Address  Selection.Delete End Sub

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

CurrentRegion を使ってみてください。 参考です。 Sub test() Dim r As Range Set r = Range("C5").CurrentRegion If Intersect(ActiveCell, r) Is Nothing Then MsgBox "含まれない" Else MsgBox "含まれる" End If End Sub

wan_wan
質問者

お礼

すみません!!早合点してしまいました。 あるセルが、任意のセル範囲に含まれるかどうかではなくって、ある座標が、どのセルに含まれるか?が知りたいんですが?

wan_wan
質問者

補足

早速のお返事ありがとうございます。 すると任意の座標だとすべてのセル範囲をEachでループ掛ける必要があるのでしょうか?宜しくお願いいたします。

関連するQ&A

  • エクセルのセルの座標の取得

    エクセルであるセルの左上の座標と右下の座標の取得方法ってご存知のかたいらっしゃいませんか? 宜しくお願いいたします。

  • エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか?

    エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか? ハイパーリンクを作成する関数は、=HYPERLINK("URLアドレス", "表示名称")で可能ですが、この逆で、"URLアドレス"を取得する関数を探しています。 例えばこのセルが、A1にあったとして、B1に =A1とすると、B1には「表示名名称」が表示されます。 C1に「URLアドレス」を表示させるVBAでなく関数が知りたいです。 無ければ、VBAでも構いません。 よろしくお願いいたします。

  • セル範囲の左上のセルの取得方法

    エクセル2010のVBAで関数を自作しているのですが Test(A as range, B as range)という関数で Aはセル1個、Bはセル範囲を選択して、Aは必ずBの左上のセルになるので、 Test(B as range)の様に変数を減らしたいです。 ただ、関数内でAを使用するので、Bのセル範囲の左上の値を取得する必要があります。 Bのセル範囲の左上の取得方法が分かりません。

  • エクセルの表から座標セルの抽出(関数で)

    エクセルの表から関数で条件に合う座標セルの値を抽出したいのです。 例 空白|い|ろ|は|に| X   |2|6|9|7| Y   |8|4|1|5| Z   |A|3|B|0| このような5列4行の表があったとき A1セルに「ろ」、A2セルに「Y」の入力でA3セルに「4」 A1セルに「は」、A2セルに「Z」の入力でA3セルに「B」を出したいです。 申し訳ありませんが教えていただけると助かります。よろしくお願いします。

  • エクセルの関数を使って、2座標を通る1次関数等を求めたいです

    皆様、はじめまして! オタッキーな質問で恐縮ですが、どうぞよろしくお願いいたします。 では、さっそく参ります。 エクセル2003の関数を使って、2点(2つの座標)を通る1次関数を求め、任意のX軸の値を代入し、Yの値を求めたいと思っております。 株のシステムトレードで、エクセルを使って、投資システムの検証をするために、このような事をしようとしています。 理想を言えば、2点(2つの座標)から直接Yの値まで1発で求める関数があればよいのですが、エクセル関数の事典で調べてもなさそうでした。 皆様、どうぞよろしくお願いいたします。

  • Excel(VBA)で1つのセルを選択したときのアドレス

    またまた 誰か教えていただけるとうれしいです エクセルのVBAであるセルを選択したときに そのセルのアドレス(A1)みたいなかんじの ものを取得する方法が知りたいのですが お願いします!

  • Excelで任意セルをWindows上の左上に持ってきたい

    Excel2002で任意セルを左上にVBAで持ってきたいのですが どうすればいいでしょうか? 任意セルが含まれる行/列が入力のそれぞれ行/列タイトルに なっていて、そういうエリアがシート上にいくつか存在します。 次のエリアに飛ぶのにいちいちスクロールするのが手間なので VBAでコントロールできないかと思います。 そのセルに飛ぶのは簡単なんですが・・・

  • Excelセル座標値の渡し方

    VBAの初心者です。 Excelでアクティブセルの座標値を取り出して、マクロの中で、その行全体、あるいは列全体を指定して挿入や削除をさせたいのですが、どうしたらよいのでしょうか。教えて下さい。よろしくお願いします。 (例)アクティブセルが C7 であるとき、Rows("7:7") に1行挿入する。 Sub 行挿入() 'セル座標値を読み取ってその行全体を指定するデータの渡し方????? Rows("7:7").Select Selection.Insert Shift:=xlDown End Sub

  • エクセルで回転する座標の出し方

    エクセルで回転する座標の出し方 (例) 座標X100、Y100の点から好きな角度を回したときのX、Yの座標の求め方 回転中心はX0、Y0 回転方向は反時計回り 例で言えば X141.421、Y0  が0度       X0、Y141.421  が90度       X-141.421、Y0 が180度       X0、Y-141.421 が270度 エクセルでの問題点は 1.角度計算がラジアンになる デグリも関数はあるけど書式がわからない  無理やり(PI()/180)などを使ってるがアークタンジェントでは書式がわからない 2.正と負の計算式・答えが負になるときの処理ができない  回転角度が270度とか 今電卓で打っているのは 100/100=ATAN ----------------------最初の角度 100*100+100*100の答えのルート--------回転中心からの直線距離 最初の角度+動かしたい角度------------求めたい座標の角度 SIN求めたい座標の角度*直線距離-------Y座標 答え COS求めたい座標の角度*直線距離-------X座標 答え 最初のX、Y座標と 動かしたい角度を入れると答えが出るような 物が作りたいです よろしくお願いします エクセル2000 WINXP

  • Excel VBAにて座標読み込み・配置

    当方、Excel VBAに関しては全くのド素人でございます。 お客さんに頼まれて、次のことをやりたいのですが、どうしたらよいか途方に暮れています。 (-50,-50)~(50,50)までの2mピッチの合計2601個のxyz座標データ(txt)をSheetに読み込み。 A列=x B列=y C列=z そしてAD列・26行のセルを座標(0,0)として、セルにz値を展開したいのです。 横軸=x 縦軸=y BC列・1行が(50,50) E列・51行が(-50,-50) 以上のことをExcel VBAでやりたいのですが・・・ 可能でしょうか? 宜しくお願いします。

専門家に質問してみよう