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
スポンサーリンク