Pause::
cb_bk = %ClipboardAll%
Clipboard =
Send, ^c
ClipWait, 2
Sleep, 50
tmp = %Clipboard%
tmp2 = `r`n
; 改行しかなかったら終了
if tmp = %tmp2%
{
content =
} else if ErrorLevel <> 0
{
; Error
content =
} else {
; 改行記号で分割。\r\nで分割出来ないみたいなので\nで分割。\rは残る。あとで\n付け足す。
AutoTrim, off
content = %Clipboard%
StringSplit, OutputArray, content, `n
; 30行以上だったら中止
if (OutputArray0 > 29) {
Clipboard = %cb_bk%
MsgBox, ごめん30行くらいまでしか無理
exit
}
; 全部の行の【=】記号の位置を取得
cnt := 1
Loop 30 {
StringGetPos, EQPos%cnt%, OutputArray%cnt%, =
cnt := cnt + 1
if ( OutputArray0 < cnt ) {
break
}
}
; 一番右側にある【=】記号の位置を取得
cnt := 1
max := 0
Loop 30 {
if (EQPos%cnt% > max) {
max := EQPos%cnt%
}
cnt := cnt + 1
if ( OutputArray0 < cnt ) {
break
}
}
; 一番右側にある【=】記号の位置に合わせて他の行でも右に移動
cnt := 1
Loop 30 {
i := max - EQPos%cnt%
Loop %i% {
StringReplace, OutputArray%cnt%, OutputArray%cnt%, =, %A_Space%=
}
cnt := cnt + 1
if ( OutputArray0 < cnt ) {
break
}
}
; 全部の行をバッファにまとめてクリップボードに貼り付け
buff =
cnt := 1
Loop 30 {
; 最後の行に【\r】記号があったら【\n】をつけたす。なかったら付けない。
if (OutputArray0 == cnt) {
StringGetPos, Decision, OutputArray%OutputArray0%, `r
if ( Decision = -1 ) {
buff := buff . OutputArray%cnt%
} else {
buff := buff . OutputArray%cnt% . "`n"
}
} else {
buff := buff . OutputArray%cnt% . "`n"
}
cnt := cnt + 1
if ( OutputArray0 < cnt ) {
break
}
}
Clipboard = %buff%
Send, ^v
Sleep, 20
}
Sleep, 200
Clipboard = %cb_bk%
return