LINUX環境で使用するSQLファイルをVBAで大量に作って意気揚々と実行コマンドを叩いたところ、エラー発生!メッセージを調べたところ、どうも文字コードをUTF-8で、改行はLFになっていないといけないようでした。一応SAKURAエディタで「名前を付けて保存」すれば変換できて実行できるようになったけど、大量にあるのでいちいち手作業で保存していくのはめんどくさい....。というわけで一括で変更する方法を調査してみました!
以下のように
cd C:\Users\username\OneDrive\デスクトップ\sakuramacro
for %%a in (*) do (call :method %%a)
exit
:method
"C:\Tools\sakura\sakura.exe" %1 -M=C:\Users\username\OneDrive\デスクトップ\sakuramacro.mac
goto :eof
ファイルしまっているフォルダパス、サクラエディタのインストール先とか↓で作ってるマクロファイルの場所とかは自分のPCの環境によるので確認しておいてください。
続けて中身の操作を記述するmacファイルを作ります。多分マクロの略なのかな?
S_ReplaceAll('\\r\\n','\\n',60); //開業コードをすべて置換
S_ReDraw(0); //再描画
S_SelectAll(0); //すべて選択
SJIStoUTF8(0); //文字コード変換
FileSave( ); //上書き保存
WinClose( ); //閉じる
以上です。sakuramacro.batをダブルクリックで実行するとフォルダの中に格納したSJISのSQLファイルが変換されてゆきます。念のためですが、変換したいファイル以外は入れないようにしましょう。↑に書いている書き方だとエクセルでも何でも開いてしまうので、高確率でファイル破壊されます。
今回は文字コードと改行の変換だけでしたが、正規表現とか使って簡単な文章校正とかもできるかもしれません。
ちなみにVBAでUTF-8かつLFのファイルを作成したい場合はADODBという拡張機能を有効にすれば実現できますので、今回紹介したのはSAKURAエディタでもマクロ使えるよってことに絞ったものになります。