必要なファイルのダウンロード〔オリジナルに制作した作品の著作権は放棄していません〕

LibreOfficeのダウンロードとインストール

download | LibreOffice - オフィススイートのルネサンス

サクラエディタのダウンロードとインストール

Releases · sakura-editor/sakura · GitHub

[sakura-tag-v2.4.2-build4203-a3e63915b-Win32-Release-Installer.zip]に類するファイル名をクリックしてダウンロードし、そのファイル名の上で[右クリック]→[すべて展開]を行ない、展開されたインストーラー〔実行ファイル=.exe〕を実行してサクラエディタをインストールする。

LibreOffice Calc〔無料表計算ソフト〕のファイルのダウンロード

LibreOffice Calc|ゴミ捨てカレンダー|ダウンロード

サクラエディタ〔無料表計算ソフト〕のファイルのダウンロード

rem サクラエディタが事前にインストールされていることが条件です。
rem ダウンロードした[gomi-calendar01.mac]や[gomi-calendar02.mac]は、以下のディレクトリにコピーします。
C:\Users\%USERNAME%\AppData\Roaming\sakura
rem [gomi-calendar01.mac]や[gomi-calendar02.mac]の文字コード・改行コードは、[SJIS〔シフトJIS〕][CR+LF]である必要があります。

サクラエディタ|ゴミ捨てカレンダー置換マクロ01|ダウンロード

サクラエディタ|ゴミ捨てカレンダー置換マクロ02|ダウンロード

【文字列の加工】:[gomi-calendar-2024-25.ods]に対する説明

LibreOffice Calc|ゴミ捨てカレンダー|ダウンロード

【文字列の加工】:【I列】:表計算ソフトLibreOffice Calcにおいて[n回目の●曜日]を表示させる方法|=TEXT(INT((DAY(I16)+6)/7),“0回目の”)&TEXT(I16,“aaaa”)]

=TEXT(INT((DAY(I16)+6)/7),"0回目の")&TEXT(I16,"aaaa")]
  • [gomi-calendar-2024-25.ods]の[I16][J16]が、このカレンダーのデータの大本である。
  • セルに以上の黒地に示した[関数を含んだ式]のセルの番地指定〔I16〕を、適切な値に自分で直す。
  • セルに以上の黒地に示した[関数を含んだ式]を埋め込む〔セルにペーストする〕。[=]も含めて埋め込む〔セルにペーストする〕。
  • それはつまり、こういうことだ。
  • 【[J16]に埋め込まれた関数】:[=TEXT(INT((DAY(I16)+6)/7),“0回目の”)&TEXT(I16,“aaaa”)]
    • [J16]をコピーし、[J16]~[J381]までの範囲にペーストする。
    • コピーするときに、セルの番地指定〔I16〕が自動的に連番化されるので、単純にコピー&ペーストするだけでよい。

【文字列の加工】:【J列】:表計算ソフトLibreOffice Calcにおいて[年月日の連続データ]を一括生成する方法

  • [gomi-calendar-2024-25.ods]の[I16][J16]が、このカレンダーのデータの大本である。
  • LibreOffice Calcの最も上の行にある、[I]の列を示す[I]という項目をクリックすると[I]列全体がハイライトされ、選択される。
  • [I]列全体がハイライトされ、選択された状態のまま、[I]列にマウスカーソルを合わせたまま[右クリック]し、[セルの書式設定]→[日付]→[2024-04-01 00:00:00]のような形式を選択して[OK]。
    • それによって[I]列全体が「[日付]の属性をもつ列」になる。
  • [I16]のセルに[2024-04-01 00:00:00]という文字列をペーストする。
  • [I17]のセルに[2024-04-02 00:00:00]という文字列をペーストする。
  • [I16]について、LibreOffice Calcのセルのうち、[I16]を含む必要な範囲を[Shift+矢印]や[左クリック+ドラッグ]などでハイライトさせ、LibreOffice Calcのメニューの[シート]→[セルのフィル]→[連続データ]と進む。
  • [連続データ]の中で以下を選んで[OK]をクリックすると[連続データ]が生成される。
    • [方向:下へ][連続データの種類:日付]
    • [時間の単位:日]
    • [開始値:2024-04-01 00:00:00]
    • [増分値:1]
  • [gomi-calendar-2024-25.ods]における[I列・J列]を[左クリック+ドラッグ]などでハイライトさせ、[Ctrl+C]でコピーして、[サクラエディタ]の編集画面に[Ctrl+V]で貼り付ける。

【文字列の加工】:[n回目の●曜日]という文字列を[可燃ゴミ]などの文字列に置換する【サクラエディタ】にて正規表現置換マクロを使う

サクラエディタ|ゴミ捨てカレンダー置換マクロ01|ダウンロード

  • [gomi-calendar-2024-25.ods]における[I列・J列]が[サクラエディタ]の編集画面に貼り付けられた状態で、[サクラエディタ]のメニューの[ツール]→[名前を指定してマクロ実行]→[gomi-calendar01.mac]を行なうと、置換が完了し、結果がクリップボードにコピーされる。
  • そのクリップボードの内容を適切に貼り付けたい。それは次のようにする。
    • [gomi-calendar-2024-25.odsをLibreOffice Calcで開いたときに[G16]を選択し、そのクリップボードの内容を[Ctrl+V]で貼り付けると、[G16]から[H382]までの範囲の各項に自動的に値が代入される。
    • それと同時に、[A16]から[F381]までの範囲の各項に自動的に値が代入される。

【文字列の加工】:[gomi-calendar-2024-25.ods]で完成した文字列データを[サクラエディタ]の正規表現置換マクロを使って、icsファイルの中身に変える。

サクラエディタ|ゴミ捨てカレンダー置換マクロ02|ダウンロード

  • [gomi-calendar-2024-25.ods]における[A1]から[F382]まで〔=[A列]から[F列]までの[BEGIN:VCALENDAR]から[END:VCALENDAR]まで〕の範囲をぜんぶコピーし、[サクラエディタ]の編集画面に[Ctrl+V]で貼り付ける。
  • [gomi-calendar-2024-25.ods]における[A1]から[F382]までの範囲ぜんぶが[サクラエディタ]の編集画面に貼り付けられた状態で、[サクラエディタ]のメニューの[ツール]→[名前を指定してマクロ実行]→[gomi-calendar02.mac]を行なうと、置換が完了し、結果がクリップボードにコピーされる。
  • そのクリップボードの内容を[sample-honyarara.mac]というファイル名で[UTF8〔BOMなし〕][CR+LF]で保存したものを、Googleカレンダーにインポートすると、指定時刻〔イベント開始の12時間前〕にメールと通知が届くようにセットされる。
  • ただし[sample-honyarara.mac]の中身にかんして、[sample-hogehoge@gmail.com]というメールアドレスを、自分のメールアドレスに置換する。

Googleカレンダーに、icsファイルを使って一括で予定をインポートする方法

今回登場した[サクラエディタの置換マクロ]の中身

[gomi-calendar01.mac]

以下の[gomi-calendar01.mac]は、正規表現によって、第nAAA曜日には、どのようなゴミを収集する]という予定表をつくるためのサクラエディタ用の置換マクロです。 この[gomi-calendar01.mac]を応用すれば、ゴミの収集日だけでなく、一年間のカリキュラムなどをも、通知することができるでしょう。

S_ReplaceAll('[\r\n]+', '\n', 148);


S_ReplaceAll('(\d+)回目の(火|土|日)曜日$', 'なしゴミ', 44);
S_ReplaceAll('(\d+)回目の(月|木)曜日$', '可燃ゴミ', 44);
S_ReplaceAll('(\d+)回目の(金)曜日$', 'プラゴミ', 44);
S_ReplaceAll('1回目の(水)曜日$', '紙類ゴミ', 44);
S_ReplaceAll('(2|4|6)回目の(水)曜日$', '資源ゴミ', 44);
S_ReplaceAll('(3|5|7)回目の(水)曜日$', '不燃ゴミ', 44);
S_ReplaceAll('(\d{4})-(\d{2})-(\d{2}) \d{2}:\d{2}:\d{2}', '$1$2$3', 44);


//完了
//S_ReplaceAll('^(?!■).+$', '', 44);
S_ReplaceAll('^[\r\n]+', '', 44);
S_ReplaceAll('[\n]+', '\r\n', 44);
S_ReDraw(0);
S_SelectAll(0);
S_Copy(0);

[gomi-calendar02.mac]

以下の[gomi-calendar02.mac]は、icsファイルを作るためのサクラエディタ用の置換マクロです。

//※このファイルは[SJIS〔シフトJIS〕][CR+LF]である必要があります。
S_ReplaceAll('[\r\n]+', '\n', 148);


S_ReplaceAll('^(.*?)(\t)+$', '$1', 44);
S_ReplaceAll('●●●前段\t', '●●●BEGIN:VEVENT●●●', 44);
S_ReplaceAll('●●●中段\t', '●●●DTSTAMP:20230314T043900Z●●●UID:●●●CLASS:PRIVATE●●●CREATED:20230314T043900Z●●●DESCRIPTION:●●●LAST-MODIFIED:20230314T043900Z●●●LOCATION:●●●SEQUENCE:0●●●STATUS:CONFIRMED●●●', 44);
S_ReplaceAll('\t●●●後段', '●●●TRANSP:OPAQUE●●●BEGIN:VALARM●●●ACTION:EMAIL●●●DESCRIPTION:This is an event reminder●●●SUMMARY:Alarm notification●●●ATTENDEE:mailto:sample-hogehoge@gmail.com●●●TRIGGER:-P0DT12H0M0S●●●END:VALARM●●●BEGIN:VALARM●●●ACTION:DISPLAY●●●DESCRIPTION:This is an event reminder●●●TRIGGER:-P0DT12H0M0S●●●END:VALARM●●●END:VEVENT●●●', 44);
S_ReplaceAll('\t', '', 44);
S_ReplaceAll('(●●●)+', '\n', 44);


//完了
//S_ReplaceAll('^(?!■).+$', '', 44);
S_ReplaceAll('^[\r\n]+', '', 44);
S_ReplaceAll('[\n]+', '\r\n', 44);
S_ReDraw(0);
S_SelectAll(0);
S_Copy(0);