月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
29 | 30 | 31 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 1 | 2 |
VBでアドインを作成するとき、カレントプロシージャの位置を求める方法。
Private mVBInstance As VBIDE.VBE '有効な値が入ってると仮定 Private Sub GetCurrentProcedurePosition(ByRef StartLine As Long, ByRef EndLine As Long) Dim CurrentLine As Long Dim ProcName As String Dim ProcKind As vbext_ProcKind Dim ProcLineCount As Long With mVBInstance.ActiveCodePane ' カーソル位置を取得 ' ※ StartLine以外はいらないので 0 を渡す Call .GetSelection(CurrentLine, 0, 0, 0) ' 指定行に定義されているプロシージャ名を取得 ' ※ ProcOfLineの第二引数にはプロシージャの種類が入ってくる ProcName = .CodeModule.ProcOfLine(CurrentLine, ProcKind) ' プロシージャの先頭行を取得 StartLine = .CodeModule.ProcStartLine(ProcName, ProcKind) ' プロシージャの行数を取得 ProcLineCount = .CodeModule.ProcCountLines(ProcName, ProcKind) ' プロシージャの最終行を求める EndLine = StartLine + ProcLineCount - 1 End With End Sub
このページにリンクを張りたい人はご自由にどうぞ。
疑問・感想・要望・不満・文句・愚痴等々ありましたら↓までメール下さいましm(_ _)m