- ベストアンサー
行番号を取得する関数
シート内の一部を選択すると(クリック)行番号を取得できるようにしたいのですが、いろんな本を見ても載っていませんでした。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
初めまして。 #1・#2の回答は同じものですが、これを実行するとセルを選ぶ度にメッセージボックスが立ち上がってそれを消さなければ作業ができなくなります。 >シート内の一部を選択すると(クリック)行番号を取得できるようにしたい ということですが、行番号を取得するだけでよろしいのでしょうか。もしかすると何かするために行番号を取得したいということではないのですか? その点についてお聞かせいただければ、サンプルマクロを作成することも可能かと思います。もしご希望の節は、あなた様のおやりになりたいことを具体的に詳しくお知らせ下さい。 お手数をおかけいたします。よろしくお願いいたします。
その他の回答 (3)
- taisuke555
- ベストアンサー率55% (132/236)
Worksheet_SelectionChange内に書くのでしたら 選択された右上の行:Target.Row 選択された行数:Target.Rows.Count Targetの無い場所(自分でマクロを作った場合)は、 Targetの代わりに Selectionで取得できると思います。 これはあくまで1つの選択範囲です。 [Ctrl]を押しながら2箇所以上を選択した場合は、 選択範囲の個数:Target.Areas.Count 2つ目の選択範囲の右上の行:Target.Areas.Item(2).Row のようになります。 何をするのか?にもよりますが、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Range("A1") = Target.Row End Sub のように書けば、A1セルに選択範囲の右上の行が表示されます。
- imogasi
- ベストアンサー率27% (4737/17069)
#1とわずかに違っていますが Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Target.Row End Sub で出来ます。列はTarget.Columnです。範囲選択を変化させると、システムがTargetという名でRangeの左上隅のセルのアドレスを教えてくれる訳です。
- tamagawa49
- ベストアンサー率46% (123/265)
VBAのActiveCell.Rowで出来ると思います。 まず、セル関数では出来ないと思います。いろいろなセルを選んだ時に行番号を返す訳ですから…。 例えば、セルを選んだ瞬間に今何行目かメッセージを出すマクロ文は、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox (ActiveCell.Row) End Sub となります。 これは、通常のツール→マクロ→VBE の標準モジュールではなく、 VBE画面でVBAProjectの中のSheet1をダブルクリックし、 (General)をWorksheetに、(Declarations)をSelectionChangeに変えると 上のような文面が入力できます。 行番号を取得というのがちょっと分かりづらいですが、おそらく Dim r as long r = ActiveCell.row で取得できるのではないでしょうか。