Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11718 / 13646 ツリー ←次へ | 前へ→

【14560】「最後に編集したセル」の行列番号取得 kanto 04/6/1(火) 20:45 質問[未読]
【14563】Re:「最後に編集したセル」の行列番号取得 Ron 04/6/1(火) 22:48 回答[未読]
【14571】Re:「最後に編集したセル」の行列番号取得 kanto 04/6/2(水) 9:06 お礼[未読]

【14560】「最後に編集したセル」の行列番号取得
質問  kanto  - 04/6/1(火) 20:45 -

引用なし
パスワード
   始めまして、kantoと申します。どうぞよろしくお願いします。

アクティブセルを対象にするのではなく、「最後に編集したセル」を対象にして
行列番号を取得する、ということはできますでしょうか。
セルの内容を編集してEnterを押すと、編集したセルの真下のセルが
アクティブセルになります。そのアクティブセルの行列番号を取得して、
行番号から1を引けばいける(結果的に編集したセルの行列番号を取得できる)、
と思ったのですが、このやり方だとセルをEnterを押さずに編集した場合、
例えばセルをデリートした場合などでは役に立たないことに
気づいてしまいました・・・。
「最後に編集したセル」の行列番号の取得は、VBAで可能でしょうか。
どうぞ皆様、ご教示のほどよろしくお願いいたします。

【14563】Re:「最後に編集したセル」の行列番号取得
回答  Ron  - 04/6/1(火) 22:48 -

引用なし
パスワード
   こんにちは。
サンプルを一つ。
全てのシートを対象にしてあります。

-----ThisWorkbookのモジュール-----
Private shLastRng As Range
Private shLastSheet As Worksheet
Property Get LastRng() As Range
  Set LastRng = shLastRng
End Property
Property Get LastRow() As Long
  If shLastRng.Rows.Count = Rows.Count Then
    LastRow = 0
  Else
    LastRow = shLastRng.Row
  End If
End Property
Property Get LastCol() As Long
  If shLastRng.Columns.Count = Columns.Count Then
    LastCol = 0
  Else
    LastCol = shLastRng.Column
  End If
End Property
Property Get LastSheet() As String
  LastSheet = shLastSheet.Name
End Property
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Set shLastRng = Target
  Set shLastSheet = Sh
End Sub

-----標準モジュール-----
Sub test()
  With ThisWorkbook
    If .LastRng Is Nothing Then
      MsgBox "編集したセルはありません"
    Else
      MsgBox "最後に編集したセルは" & Chr(10) & _
        "シート:" & .LastSheet & Chr(10) & "行:" & .LastRow & Chr(10) & "列:" & .LastCol
    End If
  End With
End Sub

-----------------------------------
testを実行すると表示されます
1行、1列を選択した場合は、それぞれ列:0、行:0となります
お試しください。
では。

【14571】Re:「最後に編集したセル」の行列番号取得
お礼  kanto  - 04/6/2(水) 9:06 -

引用なし
パスワード
   望みどおりの結果が!
感動です!
Ron様、お忙しいところお手数を割いていただいて、本当にありがとうございました。
工夫とアイデア次第でなんでもできるんですね・・・。
Ron様からいただいたコードを研究し、もっと勉強に励みます。
ありがとうございました!

11718 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free