サクラエディタで1行目をファイル名としさらに日付もつけて保存する


サクラエディタ使ってて、
新規ファイルの保存時にタイトルを付けるのが面倒だったので、
1行目の文字列に日付をつけたファイル名で、簡単に保存できるようにマクロとキー割り当てで作成しました。
どなたか(ありがとうございます)のネットの情報を参考にしてまとめました。

例えば、
サクラエディタで以下の内容でファイルを新規作成して、Ctrl + S を押すと、

タイトルてすとほげほげ

以下は本文だよ
aaa
bbb

以下のファイル名として保存できます。
新規ファイルの「名前を付けて保存」と同じ動作なので、保存前にファイル名は確認できます。

20220114_タイトルてすとほげほげ.txt

1. マクロファイル作成

auto_name.jsという名前(なんでもいい)でファイル名を作成
さくらのデフォルトのマクロ保存場所「C:\Users%USERNAME%\Appdata\Roaming\sakura\」に保存する
任意の場所に保存でもよい

// var pattern = /[\\\/:\*\?""<>\|\r\n]/g;
var pattern = /[\r\n]/g;
var pattern2 = /./g;
var EXT = '.txt';

Main();

function Main() {
  var WshShell = new ActiveXObject("WScript.Shell");
  var sLine    = GetLineStr(1).replace(pattern, "").replace(/\./g, '-');
  

  if (sLine == "")
    return;

  if (Editor.GetFilename() != ''){
    FileSaveAs(Editor.GetFilename());
    return;
  }

  var sFileName = WshShell.CurrentDirectory
      + '\\'
      + getNow()
      + '_'
      + sLine
      + EXT;

  FileSaveAsDialog(sFileName);
}

function getNow(){
  var now=new Date();
  var y = now.getFullYear();
  var m = ("0"+(now.getMonth()+1)).slice(-2);
  var d =("0"+( now.getDate())).slice(-2);
  return y+m+d;
}

2. マクロの登録

「1行目をファイル名として保存」という名前でマクロとして登録する
(マクロの名前も何でもいい)

  1. メニュー > 設定 > 共通設定を開き、マクロを選択
  2. マクロ一覧で0番または空のマクロを選択(キャプチャは設定後の画面です)
  3. 作成した「auto_name.js」をFileで選択
  4. 「1行目をファイル名として保存」という名前で設定
  5. キャンセル確認待ち時間を0秒に設定する
  6. 設定ボタン押す
  7. OK押す

3. キー割り当て

上記で作成したマクロを、上書き保存の「Ctrl + S」に割り当てる

  1. メニュー > 設定 > 共通設定を開き、キー割り当てを選択
  2. 種別に外部マクロを選択
  3. 「1行目をファイル名として保存」のマクロ選択
  4. Ctrlにチェック
  5. Ctrl+Sを選択
  6. 割付でキーに割り当てる
  7. すでに割付があれば解除する
  8. OK押す

ファイル保存時にCtrl+Sを実行で確認

ファイル名の欄に自動で入力される