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