既存の関数を組み合わせるだけ。
タイトルの意味がお分かりでしょうか。簡単に言うと、キャレットがある位置はその行の先頭の文字から数えて何バイト目にあるかを取得する、ということです。処理は簡単です。現在のキャレットがある位置からキャレットがある行の先頭文字の位置を引いてあげればいいのです。目新しい関数も今回はなく、既存の関数を組み合わせるだけでできてしまいます。それでは、関数を書いてみます。
'----------------------------------------------------------------
Dim SelStartB As Long '先頭からの文字位置
'先頭からの文字位置を取得する
'指定の文字位置の行番号を取得する
'指定の行の先頭の文字位置を取得する GetCaretXPos = SelStartB - LineStart End Function この関数は、キャレットが文字の先頭にあれば1を返します。「文字列の先頭は0だ」と思う方は、1を引くなり適当に改造を試みてください。 |