S_ExpandParameter('$x'); は「現在の物理桁位置(先頭からのバイト数 1開始)」ですからね。
バイト数だからタブ文字があると桁位置とは剥離します。
で、現状、タブ幅も考慮した桁位置取得機能はありません。
ただ、選択状態をいじっても良いなら「選択開始桁の取得」でできます。
-----
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに ppa.dll を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
var // 変数確保
x,y:Integer; // 整数数値変数 x,y 確保
begin //{
S_CancelMode(0); // 各種モードの取り消し - 選択解除
// ↑マクロ開始時に選択状態だった場合のため
S_BeginSelect(0); // 範囲選択開始
x := S_GetSelectColmFrom(); // 選択開始桁の取得
y := S_GetSelectLineFrom(); // 選択開始行の取得
S_CancelMode(0); // 各種モードの取り消し - 選択解除
MessageBox( IntToStr(x) + ',' + IntToStr(y) , '(x,y)' , 0 ); // 表示
end; //}
-----