アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel VBAです。
以下のようなことをしようとしています。

1) ユーザーは任意のセルをクリック
2) その行のA列から順に列方向にデータを参照し処理をする。

そこでお聞きしたいのは2点です。
Q1.いまフォーカスがあるセルの位置情報(R8とか)の取得方法。
Q2.そこからA列に移動する方法(R8からR1に移動)

基本的なことだと思いますが、スキルに追いつかないものを急ぎで作らなければなりません。
申し訳ありませんが、アドバイスをいただけますか?

A 回答 (3件)

アクティブセルの行番号の取得は


ActiveCell.Row
で、列番号の取得は
ActiveCell.Column
で出来ます。

例えば、
Cells(ActiveCell.Row, 1).Select
で現在のアクティブセルの行のA列に移動できます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/02/26 15:18

こんな感じですか?



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
    • good
    • 1
この回答へのお礼

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

お礼日時:2004/02/26 15:20

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/02/26 15:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!