テキストエディタを作っています。
ほかのものを見ると、よくタブの間隔を設定できますよね。
あれをやってみようと思ってるんですけど、どうもうまくいきません。
調べてみると、SendMessageでEM_SETTABSTOPSを送ってやるといいそうなのですが。
コピーして関数を作ってみたんですが、これではタブの間隔が設定値どおりにいかないし、しかもばらばらなんです。
いまいちわかっていないのですが…どこがいけないのか教えてください。。

'水平ダイアログボックス単位を取得
lngHorizonDialogBoxUnit = (GetDialogBaseUnits And &HFFFF&) / 4

'タブ位置を格納するバッファを確保
ReDim lngTabsArray(argTabStops)

'タブストップ位置を10ダイアログボックス単位間隔に指定
For lngLoopCount = LBound(lngTabsArray) To UBound(lngTabsArray)
lngTabsArray(lngLoopCount) = (lngLoopCount + 1) * (10 * lngHorizonDialogBoxUnit)
Next lngLoopCount

With argTextBox
'既存のタブストップを解除
lngWin32apiResultCode = SendMessage(.hWnd, EM_SETTABSTOPS, 0, vbNullString)

'新しいタブストップ位置を設定
lngWin32apiResultCode = SendMessage(.hWnd, EM_SETTABSTOPS, argTabStops, lngTabsArray(0))

'テキストボックスを強制的に更新
.Refresh
End With