• ベストアンサー

Excel:いまフォーカスがあるセルを特定し、その行のセルのデータをA列から順に参照したい。

Excel VBAです。 以下のようなことをしようとしています。 1) ユーザーは任意のセルをクリック 2) その行のA列から順に列方向にデータを参照し処理をする。 そこでお聞きしたいのは2点です。 Q1.いまフォーカスがあるセルの位置情報(R8とか)の取得方法。 Q2.そこからA列に移動する方法(R8からR1に移動) 基本的なことだと思いますが、スキルに追いつかないものを急ぎで作らなければなりません。 申し訳ありませんが、アドバイスをいただけますか?

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

  • ベストアンサー
  • mythism
  • ベストアンサー率52% (45/86)
回答No.1

アクティブセルの行番号の取得は ActiveCell.Row で、列番号の取得は ActiveCell.Column で出来ます。 例えば、 Cells(ActiveCell.Row, 1).Select で現在のアクティブセルの行のA列に移動できます。

sarutobi
質問者

お礼

まさにそれです! 大変助かりました。ありがとうございます!

その他の回答 (2)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.3

SelectionChangeイベントでtarget変数のアドレスから得られますね。下記の例はユーザーがあるセルを選択したら、 1, 選択したセルのアドレスを取得 2, 同じ行のA列に移動 3, A列から最初に選択したセルまでのループ処理 の例です。必要に応じて使ってみてください。なお、この処理はセルを選択するたびに発生しますから、処理をする場合としない場合を最初に条件分けする必要がありますね。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False 'アドレス取得 MsgBox Target.Address '同じ行のA列に移動 Cells(Range(Target.Address).Row, 1).Select 'A列から最初にカーソルのあったセルまでのループ処理 For i = 1 To Range(Target.Address).Column a = a + Cells(Range(Target.Address).Row, i).Value Next i MsgBox a Application.EnableEvents = True End Sub

sarutobi
質問者

お礼

丁寧なご回答ありがとうございます。 サンプルを頂いて、他にも頂戴できるネタがありそうです。助かりました。感謝いたします。

回答No.2

こんな感じですか? Sub Test01() r = Selection.Row c = Selection.Column MsgBox "Cell(" & r & "," & c & ")が選択されました。" For i = 1 To c Cells(r, i).Select MsgBox Selection.Address(0, 0) Next End Sub

sarutobi
質問者

お礼

ご回答ありがとうございます。 &r&のやり方を忘れていて、どうしようかなーと思っていたときだったので、助かりました。感謝いたします。

関連するQ&A