VBA 選択範囲の行列を取得する


スポンサーリンク

以外と検索で引っかかってこないのが、選択範囲の取り出し。

エクセルのセルを範囲指定しておいて、ウィンドウを開き、その範囲のデータを処理する。

これはよくあることだ。

どうするか。

こうする。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim sr, sc
    Dim er, ec
    
    sr = Target.Row
    sc = Target.Column
    er = sr + Selection.Rows.Count - 1
    ec = sc + Selection.Columns.Count - 1

    call UserForm1.init(sr,sc,er,ec) '←最初にFORM渡してFORMのグローバル変数で保存しておくと便利
    UserForm1.Show
    Cancel = UserForm1.stat ' ← Formを抜けるときにCancelを入れるようにするとFormないの各所で使えて便利

味噌は、selection にありということだ。

UserForm のモジュール
Option Explicit
Public stat
Public Gsc
Public Ger
Public Gec
Sub init(sr, sc, er, er)
    stat = True
    Ss_Cnt = 0
    
    Gsr = sr
    Gsc = sc
    Ger = er
    Gec = ec
    
End Sub

スポンサーリンク