秀丸で、日付をファイル名にして自動的に保存するマクロ。

コードのコメントにも書いたのだが、一応説明しておくと、このマクロは、秀丸で書いた文章にファイル名を日付(yyyymmddx.txt)で付けて保存し、ウィンドウを閉じる(ファイル名最後の「x」は、その日で保存した順に、a、b、c、…とついていく)。保存先のディレクトリは、コードの中で指定して欲しい。

このコードは 1996年に作ったものだから、かれこれ 10年くらい使ってるコードです(笑)。

// 秀丸 ファイル名自動作成&保存マクロ // // Copyright (c) 1996-2006 twinkle.cc All Rights Reserved. // 改変、配布は自由 // →でも修正したら連絡いただけると嬉しいです:perltips@gmail.com // // ○このマクロについて // // このマクロは、秀丸で書いた文章にファイル名を日付で付けて保存し、終了します。 // 以下の 2点で自動化します。 // // 1) 書いた文を、指定されたディレクトリに日付をファイル名として保存。 // ファイル名は yyyyddmmx.txt というフォーマット。 // yyyymmdd は 2006/12/24 などのフォーマット。 // x は、その日で保存した順に、a、b、c、…とついていきます。 // つまりファイル名は 20061224a.txt、20061224b.txt... などの名前に // なります(ファイル名を考えなくてすむので便利)。 // 2) タブを空白に変換します (97行目)。 // // // ○ 設定方法 // // 1) 秀丸エディタの設定メニューから、 // その他|動作環境|環境|マクロファイル用のフォルダ // で、マクロを保存するディレクトリを指定。 // 2) 下の、[保存するディレクトリの指定] のところで、 // 書いたメールを保存するディレクトリを指定。 // ディレクトリの区切り記号 \ は \\ と2つ重ねる。 // 3) このマクロを save_txt.mac などの名前で、 // 1) で設定したディレクトリに保存。 // 4) 秀丸のメニューから、マクロ|マクロ登録|ファイル名で // 3) で指定したファイル名を選択。タイトルを設定。 // 5) 必要なら、秀丸でキーカスタマイズとツールバーを // カスタマイズすればボタンひとつでマクロを走らせることが可能。 // [保存するディレクトリの指定] // ネットワークにある PC に保存するとき // \\your_computer_name\data\mail\2006 に保存する場合 // (2006 などの年ごとのディレクトリは毎年作ってください) $savedir = "\\\\your_computer_name\\data\\mail\\" + year + "\\"; // ローカルに保存するとき // $savedir = "c:\\data\\mail\\logs\\" + year + "\\"; // ここから先はプログラム #index = 0; // 行を表す // 最初の空白行は無視 gofiletop; // ファイルの先頭に移動 while(!linelen2) {
delete;                             // 改行を削除
} // 日付をファイル名として保存 gofileend; // ファイルの終わりで作業 insert "\n"; insert year; insert month; insert day; insert "a.txt"; // yyyymmdd.txt という名前を付ける copyline; // 行をコピー beginclipboardread; // クリップボードの選択を開始 $filename = getclipboard; // ファイル名をクリップボードから取得 // ファイルが存在するかどうか if (filename != "" ) {
// filename の初期化
if (leftstr(filename, 3) == "\\\\\\")
    $filename = rightstr(filename, strlen(filename) - 1);
else
    $filename = filename;           // 既存のファイル名をつける。
} else {
while (existfile($savedir + $filename)) {

    $index = midstr($filename,8,1); // 現在の index を取得 (初期値 a)
    $index = char(ascii($index)+1); // index を更新(a,b,c, ...)
    golinetop;                      // 行の先頭に移動
    right 8;                        // index 位置に移動
    insert $index;                  // index を付加
    delete;                         // 更新前の index を消す
    copyline;                       // できたファイル名をコピー
    beginclipboardread;             // クリップボードの選択を開始
    $filename = getclipboard;       // ファイル名をクリップボードから取得
}
} $filename = $savedir + $filename; // ファイル名をフルパスで生成 // ファイル名の後処理 selectline; // 1行選択 cut; // カット backspace; // 最初に付けた \n を削除 // 作成した内容をクリップボードにコピー selectall; // 全ての範囲を選択 tospace; // タブ→空白変換 copy; // クリップボードへコピー escape; // 選択を解除 // ファイル名を付けて保存 saveas $filename; // 秀丸を終了 exit;

Comments

Submitted by Anonymous (not verified) on 2008/04/09 - 23:15

Permalink

とても参考になりました。 ありがとうございました。 下記のコメントと、 https://okwave.jp/qa1627168.html こちらのマクロから、 下記のようなマクロを作成しました。 ファイルの新規作成時に、日付とindexが自動的にはいるようにしたマクロです。 以上、御礼とご報告まで。 ----------------------------------- // ★★使い方★★ // // (1)Hidemaru.exeのショートカットを作成する。 // (2)ショートカットのプロパティのリンク先に起動オプション(/x newfile.mac)を追加する。 // "C:\Program Files\Hidemaru\Hidemaru.exe" /x newfile.mac // (3)マクロフォルダに本ファイルをnewfile.macという名前で作成する。 // 本ファイルのsavedirの部分は適当に変更して下さい。 // ここで指定したフォルダに日付のテキストファイルを作成します。 // "\"は2つ重ねて記述する必要があります。 // ★★パラメータ★★ // [保存するディレクトリの指定] $savedir = "C:\\Users\\admin\\Documents\\memo\\"; // ★★以下、プログラム。変更しないこと。★★ // ファイル名を設定 $filename = year+month+day+".a.txt"; // ファイルが存在するかどうか if (filename != "" ) {
// なし。→何もしない。
} else {
// あり。→名前のindexを変更
while (existfile($savedir + $filename)) {
    $index = midstr($filename,9,1);           // 現在の index を取得 (初期値 a)
    $index = char(ascii($index)+1);           // index を更新(a,b,c, ...)
    $filename = year+month+day+"."+$index+".txt"; // ファイル名を変更
}
} // ファイル名をフルパスで生成 $filename = $savedir + $filename; // ファイルをオープン openfile $filename -----------------------------------

Submitted by Anonymous (not verified) on 2008/04/09 - 23:22

Permalink



とても参考になりました。
ありがとうございました。

下記のコメントと、 
https://okwave.jp/qa1627168.html
こちらのマクロから、
下記のようなマクロを作成しました。
ファイルの新規作成時に、日付とindexが自動的にはいるようにしたマクロです。 

以上、御礼とご報告まで。 

-----------------------------------
// ★★使い方★★
//
// (1)Hidemaru.exeのショートカットを作成する。
// (2)ショートカットのプロパティのリンク先に起動オプション(/x newfile.mac)を追加する。
// "C:\Program Files\Hidemaru\Hidemaru.exe" /x newfile.mac
// (3)マクロフォルダに本ファイルをnewfile.macという名前で作成する。
// 本ファイルのsavedirの部分は適当に変更して下さい。
// ここで指定したフォルダに日付のテキストファイルを作成します。
// "\"は2つ重ねて記述する必要があります。


// ★★パラメータ★★
// [保存するディレクトリの指定]
$savedir = "C:\\Users\\admin\\Documents\\memo\\";


// ★★以下、プログラム。変更しないこと。★★
// ファイル名を設定
$filename = year+month+day+".a.txt";

// ファイルが存在するかどうか
if (filename != "" ) {
	// なし。→何もしない。
} else {
	// あり。→名前のindexを変更
    while (existfile($savedir + $filename)) {
        $index = midstr($filename,9,1);           // 現在の index を取得 (初期値 a)
        $index = char(ascii($index)+1);           // index を更新(a,b,c, ...)
        $filename = year+month+day+"."+$index+".txt"; // ファイル名を変更
    }
}

// ファイル名をフルパスで生成
$filename = $savedir + $filename;

// ファイルをオープン
openfile $filename

-----------------------------------