• ベストアンサー

行番号を取得する関数

シート内の一部を選択すると(クリック)行番号を取得できるようにしたいのですが、いろんな本を見ても載っていませんでした。 よろしくお願いします。

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

  • ベストアンサー
回答No.4

初めまして。 #1・#2の回答は同じものですが、これを実行するとセルを選ぶ度にメッセージボックスが立ち上がってそれを消さなければ作業ができなくなります。 >シート内の一部を選択すると(クリック)行番号を取得できるようにしたい ということですが、行番号を取得するだけでよろしいのでしょうか。もしかすると何かするために行番号を取得したいということではないのですか? その点についてお聞かせいただければ、サンプルマクロを作成することも可能かと思います。もしご希望の節は、あなた様のおやりになりたいことを具体的に詳しくお知らせ下さい。 お手数をおかけいたします。よろしくお願いいたします。

その他の回答 (3)

回答No.3

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)
回答No.2

#1とわずかに違っていますが Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Target.Row End Sub で出来ます。列はTarget.Columnです。範囲選択を変化させると、システムがTargetという名でRangeの左上隅のセルのアドレスを教えてくれる訳です。

回答No.1

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 で取得できるのではないでしょうか。

関連するQ&A