選択したセルの座標の取得

このQ&Aのポイント
  • 選択したセルの座標を取得する方法を教えてください。
  • セルの座標を取得するには、Worksheet_FollowHyperlinkイベントを使用します。
  • 具体的なコード例を記述して、選択したセルの位置情報を表示する方法を教えてください。
回答を見る
  • ベストアンサー

選択したセルの座標の取得

選択したセルの座標の取得 sheet1    A B C   1   2  α     3     sheet1のB2にはαという文字が挿入されており、ハイパーリンクの設定がしてあります。 B2をクリックするとsheet2に移行します。 sheet1で選択したセルの位置を取得したいのですが、上手くいきません。 ご教授の程、宜しくお願いします。  現在の記述は以下の通りです。  Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  Dim gyo As Long  Dim ret As Long  gyo = ActiveCell.Row  ret = ActiveCell.Column  MsgBox "行番号" & gyo & "列番号" & ret  End Sub Sheet1のB2を選択して、Sheet2に移行した時に、Msgboxには、 行番号2 列番号2 というようにしたいのです。

  • rezon
  • お礼率25% (10/39)

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか gyo = Target.Range.Row ret = Target.Range.Column

rezon
質問者

お礼

有難う御座います、上手くいきました。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

Targetを使います。 gyo = ActiveCell.Row ret = ActiveCell.Column ↓ gyo = Target.Range.Row ret = Target.Range.Column

rezon
質問者

お礼

有難う御座います、上手くいきました。

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.1

>gyo = ActiveCell.Row >ret = ActiveCell.Column を gyo = Target.Range.Row ret = Target.Range.Column に変えてみてください。

rezon
質問者

お礼

有難う御座います、上手くいきました。

関連するQ&A

  • 無効なセルを参照した場合の判定について

    表内のセルを選択した場合と、表外のセルを選択した場合に処理を分けたいと考えています。アクティブセルがhaniに含まれる場合(または含まれない場合)ですが、<>と=では無理なようなのですが、何を調べても分かりません。どなたかよろしくお願いいたします。 Windows2003、XPです。 Sub shita() Dim a As Range Dim hani As Range Set hani = UsedRange b = ActiveCell.Address MsgBox UsedRange.Address & " " & ActiveCell.Address If b = hani.Address Then Range("A1").Select Else MsgBox "表内のセルを選択してください。" End If End Sub

  • 選択セルの中身が変わる理由

    4月 5月 6月 商品A 87 58 210 商品B 85 90 117 商品C 100 54 130 商品D 76 210 325 合計 348 412 782 Sub 数値条件セル選択() Dim 対象セル As Range Dim 選択セル As Range 'シート内の数値セルを選択 ActiveSheet.UsedRange.Select ActiveCell.SpecialCells(xlCellTypeConstants, xlNumbers).Select '「100以上」のセルを選択 1 For Each 対象セル In Selection 2 If Val(対象セル.Value) >= 100 Then 3 If 選択セル Is Nothing Then 4 Set 選択セル = 対象セル Else 5 Set 選択セル = Union(選択セル, 対象セル) End If End If Next '検索結果の表示 If 選択セル Is Nothing Then ActiveCell.Select MsgBox "該当セルはありませんでした" Else 選択セル.Select End If End Sub 教えてください 3,4の所なのですが、最初に見つけた100以上の値(6月の210)なので 選択セルに210が入るのですが、コレは分かりました。が最後までコードを進めていくと選択セルが(4月の100)になっています。 コレはなぜでしょうか。分かりません。教えてくださいお願いします。 VBAの勉強(初心者です)

  • Excel VBAで「セルが選択されたら…」

    任意の列のセルが選択されたら、マクロを実行したいんですが、どのようにしたらいいのでしょうか? 「セルを変更したら…」っていうのはわかるんですが。。 Private Sub ***() Dim i As Integer i = ActiveCell.Row ***の部分がわかりません。 よろしくお願いします。

  • Excel VBA セル選択

    Sub 全角() Dim i As Long, buf As String For i = 1 To Len(ActiveCell.Value) If Mid(ActiveCell.Value, i, 1) Like "[ア-ン]" Then buf = buf & StrConv(Mid(ActiveCell.Value, i, 1), vbWide) Else buf = buf & Mid(ActiveCell.Value, i, 1) End If Next i ActiveCell.Value = buf End Sub このコードだと一つのセルしか変換できません。 選択した範囲全部を変換できるようにしたいです。

  • ExcelVBAで、選択範囲内で同じ値が入力されたセルを調べる

    選択範囲内(縦一列)で同じ値が入力されたセルの色を黄色にするプログラムを作りました。 Sub 選択範囲内で同じ値が入力されたセルを調べる_縦() Dim startrow As Byte Dim lasrow As Byte Dim i As Long Dim j As Byte Dim atai If TypeName(Selection) <> "Range" Then Exit Sub startrow = ActiveCell.Row '最初のセルの列番号を取得 lasrow = Selection.Rows(Selection.Rows.Count).Row '最終列番号を取得 '同じ値が入力されているセルを黄色にする For i = startrow To lasrow - 1 If ActiveSheet.Cells(i, ActiveCell.Column).Interior.ColorIndex = xlNone Then atai = ActiveSheet.Cells(i, ActiveCell.Column).Value For j = i + 1 To lasrow If atai = ActiveSheet.Cells(j, ActiveCell.Column).Value Then ActiveSheet.Cells(i, ActiveCell.Column).Interior.ColorIndex = 6 ActiveSheet.Cells(j, ActiveCell.Column).Interior.ColorIndex = 6 End If Next End If Next End Sub 但し、上記のプログラムでは選択範囲内に結合セルがあるとエラーになってしまいます。 どなたか、解決方法をご教授頂けませんでしょうか? 宜しくお願い致しますm(._.)m

  • 各ボックスの値を、指定セルに転記したいのですが

    エクセル2007で作成 ・入力シートでユーザーフォーム1を呼出す。 B列の最終行をアクティブセルとする ・コンボボックス1にて部署名を選択。 ・コンボボックス2にて個人名を選択。 Sub ComboBox2_Click() Dim lastRow As Long Dim myLlist As String Dim R As Long myLlist = ComboBox2 With UserForm1 Select Case myLlist Case "○○ △△" ’個人名 .ListBox1.RowSource = "○○!B1:B100" ←B100ではなく、最終行に変更したい End Select End With End Sub ・リストボックス1にて作業名を選択(複数可)後、決定コマンドボタンにて確定。  入力シートのアクティブセルにコンボボックス1の値を転記  右隣セルにコンボボックス2の値を転記  さらに右隣にリストボックス1の値を転記 Sub 決定_Click() ActiveSheet.Unprotect Dim 行 As Long Dim 列 As Long Dim i As Integer Dim LB As String With UserForm1 行 = ActiveCell.Row 列 = ActiveCell.Column UserForm1.ComboBox1.Value = Cells(行, 列) UserForm1.ComboBox2.Value = Cells(行, 列 + 1) With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then LB = LB & .List(i, 0) LB = Cells(行, 列 + 2) ←ココを変更したい End If Next i End With End With End Sub 個人名シートの指定範囲は、最終行までとしたい。 転記後、D列の1セルの中に選択した複数の作業名が入ってしまうので、 作業名単位で行を分けたい。 その時、同一部署なら同名をB列の下の行に、 同一人物なら同名もC列の下の行に転記したい。 以上、行いたい事項です。 方法がわからず困っています。 どなたかご教授頂きますよう、宜しくお願い致します。

  • 選択行番号を取得して別シート貼り付ける方法

    VBAを使いsheet1の選択した行番号をsheet2のA1列に全て貼り付ける方法が分からなくて困っています。  ちなみに下記のVBAはsheet1上で実行するとメッセージボックスに選択行の数値が順番に表示されます。この選択行番号情報を全てsheet2のA1列に貼り付けたいのですが、どうすれば良いでしょうか?   選択行は最大400位になります。特にメッセージボックスに表示する必要はありませんので、メッセージボックス表示は不要です。 Sub 行番号取得() Dim r As Range For Each r In Selection.Rows MsgBox r.Row Next End Sub

  • EXCEL VBAについて

    EXCEL VBAについて教えてください やりたいことは以下の通りです。 ・全シートJ列1~100行目を検索しアルファベットが含まれるセルが存在すれば 上のセルをコピーする ここまで作ったのですが上手くいきません Sub VBAsample() Dim GYO As Long For GYO = 1 To 100 If Find([a-z], LookAt:=xlPart) Then Cells(GYO, 10).Value = Cells(GYO - 1, 10).Value End If Next GYO End Sub 添削をお願いします

  • 検索後のセルの選択を正しくしたい

    Excel2007でマクロ作成中の初心者です。 以下のコードの中で(1)のところがうまく作動できません。 ここの ActiveCell.Select を正常にするにはどうしたらよいかご教示をお願いします。 Sub 最終日の検索() Dim FC As Range Dim mydate As Date mydate = Range("BQ5").Value For Each FC In Range("BR30:BR300") If FC.Value = DateValue(mydate) Then Exit For End If Next If FC Is Nothing Then MsgBox "みつかりませんここでおわりです" Exit Sub End If MsgBox "見つかりました" & vbLf & FC.Address(0, 0) & vbLf & FC.Value ' ' ここに処理を追加したい ActiveCell.Select ’----------(1) Selection.Offset(0, 45).Select ActiveCell.Select 貼付けしてあるかどうか Set FC = Nothing End Sub ---------------------------------- Sub 貼付けしてあるかどうか() If ActiveCell.Value = "※※" Then MsgBox " 既に貼付けしてあります" Else MsgBox "貼付けしてないので処理します" End If End Sub

  • 【Excelマクロ】 セルの色取得

    古いファイルを加工することが多々あり、セルに塗られている色を調べる(セルの書式設定→塗りつぶし→その他の色→ユーザー設定)のが非常に面倒です。 RGB値をマクロで表示させる方法を見つけたものの、セルが指定(A1/A2/B1)されています。 <1つ右> Sub 色情報取得() Dim r As Long Dim g As Long Dim b As Long n = Range("A1").Interior.Color r = n \ 256 ^ 0 Mod 256 g = n \ 256 ^ 1 Mod 256 b = n \ 256 ^ 2 Mod 256 Range("A2") = r & "," & g & "," & b End Sub <1つ左> Sub 色情報取得() Dim r As Long Dim g As Long Dim b As Long n = Range("A1").Interior.Color r = n \ 256 ^ 0 Mod 256 g = n \ 256 ^ 1 Mod 256 b = n \ 256 ^ 2 Mod 256 Range("B1") = r & "," & g & "," & b End Sub 調べたいセルにカーソルを置いた状態で実行するマクロをご教示ください。 希望1.画像のように1つ右 or 1つ左、もしくはn個右 or n個下など、表示させたいセルを自由に設定したい 希望2.複数セルを一括で処理したい よろしくお願い致します。

専門家に質問してみよう