« MyricaフォントのFontX形式、DOS/C用フォントさらに追加 | トップページ | マザー固定ピン折れのHP200LX修繕 »

2017/09/17

Windows上でテキスト文頭にタイムスタンプを自動挿入するスクリプトを使ってすばやいメモとり

Windows環境での、テキストメモをとるときの設定についてです。

ぼくは以前、メモは紙(手帳)を使っていました。今は、データ再利用と数年前の過去記録参照のため、テキストファイルにしています。
ここでは、テキストファイルでメモを取るというのは前提条件として、議論の対象にはしません。
ついでに、アプリ(OneNoteとか紙copiとかKeepとかEvernoteとか)への依存を避けることも前提条件で、議論の対象にはしません。

テキストファイルに文字によるメモをとる、そのためにWindowsでアプリに依存しない汎用的で、とにかくメモを取り始めるまで素早い手順のための設定についてのお話です。

20年前とは異なり、業務上貸与されたPCでは、紙copiをインストールすることも自由とは限りませんし、EvernoteやDropboxのアクセスも制限されているかもしれません。
ぼくはHP200LXを使ってメモをとっていますけれど、これは一般的な環境ではありません。Windows 7やWindows 10の環境はある程度一般的だと思います。

なので、Windows 7/Windows 10で、テキストメモを取るときのなるべく環境に依存せず、かつ手早くメモをとれるごく簡単な環境設定をここでは説明します。

メモ帳の一行目に「.LOG」と入れておくというのが一番近いです。でも、あのタイムスタンプの書式にぼくは耐えられません。
なんで時間が前で日付が後ろなの?普通にそのままソートしないの?改行入れてしまうけど、grepしないの?と思ってしまいます。これは好みではありますので、メモ帳の一行目に.LOGと入れておけばタイムスタンプ付きのメモがとれて、それでかまわない方はWindows標準アクセサリのメモ帳で、一行目に.LOGと入れてお使いください。

じゃあ、どうしているの?という話です。

まず、ぼくが好んでとっているテキストファイルのメモの形式です。

2017/09/16 19:46:39 こんな風に次の行にして、続きを書きます。このため、複数行にわたって図を描くような用途は想定していません。
2017/09/16 19:45:41 複数行ではなく一行の中にメモを書きます。長いときは途中でタイムスタンプ付きで新規行にします。
2017/09/16 19:45:11 新しい内容は上に、古い内容は下になります。逆がよければソートすればよいです。
2017/09/16 19:44:57 こういう内容のメモです。

こんな感じです。

書式としては、


YYYY/MM/DD HH:MM:SS メモ内容

という行を1レコードとしたデータです。
これをこのまま書式整形して印刷するような用途は考えず、必要であれば変形した先で利用します。メモ内容文頭に記号などを入れて分類してもいいのでしょうけれど、それすらほとんどしていません。生データを入れるテキストファイルによるデータベースなので、大事なのは手早く生データを作ることだととらえています。会話をとらえ、蒸発する前にすばやく歪めずにテキストにメモすることが肝要だと思っています。

なので、一瞬でテキスト入力できる状態になっていて、タイムスタンプも自動で入ってくれるのが理想です。もともとHP200LXで構築したやり方ですけれど、Windows 7やWindows 10でも同様にやりたいと思ったわけです。

一瞬でメモのテキストファイルが起動して、一瞬でタイムスタンプが入ってすぐメモを取り始める状態になっているべきだ、それが当たり前だ、と思っています。
タイムスタンプのために、きょう[変換][スペース]いま[変換]とか、ボタンをマウスクリックするとかはありえない、と思っています。そういう意味では、メモ帳の.LOG機能は割と理想に近いものではあるのです。

20170917


ここでは、Windows標準の機能で、

ショートカットキーをメモ用テキストファイルに設定する
タイムスタンプ挿入とカーソル移動のためのスクリプトを作成し、ショートカットキーを設定する

という手順を説明します。スクリプトはWindows標準のWSHであるVBScriptで記述します。


まず、メモ用テキストファイルです。
ポケットひとつの原則に従い、メモ用テキストファイルは1ファイルにするのが楽だと思っています。

ぼくの場合は、個人用のファイル、仕事用のファイルの2種類がありますけれど、使うPCは個人用なら個人用のファイルひとつですし、仕事用PCでは仕事用ファイルひとつですので、ポケットひとつの原則通りです。

年が変わるとファイルを変えます。正確には、月単位で月単位のバックアップファイルを作り、古い行は削除していきます。年が変わると年をファイル名に入れたファイルに分けてしまいます。年に一つのファイルするのは、ほぼ日手帳が年単位に本棚に並んでいるように、テキストファイルで年単位でフォルダ(ディレクトリ)に並んでいる状態にしておいて、grepで検索をかけたり、年が分かっていたらエディタやビューアでファイルを開いて検索をかけるからです。

MEMO.TXT
MEMO2017.zip
MEMO2016.TXT
MEMO2016.zip
MEMO2015.TXT
MEMO2015.zip

といった感じです。MEMO.TXTを常に編集するファイルにしています。これは別途毎日バックアップをとっています。


なので、MEMO.TXTを起動するショートカットキーを設定します。

ショートカットキーの設定は、
テキストファイル(MEMO.TXT)のショートカットファイル(MEMO.TXT - ショートカット.lnk)を作成する。
ショートカットファイルをデスクトップかスタートメニューにコピーする。
コピー先のショートカットファイルのプロパティを開いてショートカットキーを指定する。
という手順です。

20170916_2
テキストファイルで右クリックして、ショートカットの作成を選びます。デスクトップに置いていいなら送るでデスクトップを選んだら一操作ですみます。

20170916_9

ここでは、CTRL+ALT+Mというショートカットキーを設定しています。
デスクトップは整理しておきたいので、ぼくはスタートメニューフォルダにコピーしています。
たとえば、
C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu
にコピーするということです。エクスプローラーで表示タブの隠しファイルにチェックを入れれば、このフォルダも表示して貼り付けることができます。

20170916_3


20170916_4


20170916_5


つぎに、タイムスタンプ挿入のスクリプトです。
スクリプトの内容は単純で、1行目に行挿入してタイムスタンプを入れ、半角スペースを入れてその1行目末にカーソルを位置してすぐメモをとれる状態にするだけです。

VBScriptは単なるテキストファイルです。メモ帳でも以下のスクリプトを貼り付けて保存し、ファイル名の拡張子を.vbsにします。たとえば、
datetime.vbs
という感じです。


Option Explicit
' 編集中テキストの文頭にタイムスタンプを挿入する。
Dim strNow, objWshShell
strNow = "" & now() & " "
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.run "cmd /c echo " + strNow + "| clip", 6, 1
WScript.Sleep 30
objWshShell.SendKeys("^{HOME}^v{LEFT}")

このファイルをどこか好きなところに保存しておき、これにショートカットキーを設定します。

「datetime.vbs」をダウンロード

書式は、Windows設定に従っています。
標準では、yyyy/MM/dd HH:mm:ss です。

20170916_21


ショートカットキーの設定は、
VBScriptファイル(datetime.vbs)のショートカットファイル(datetime.vbs - ショートカット.lnk)を作成する。
ショートカットファイルをデスクトップかスタートメニューにコピーする。
コピー先のショートカットファイルのプロパティを開いてショートカットキーを指定する。
という手順です。

先ほどと同様ですね。

20170916_15


ここでは、CTRL+ALT+Dというショートカットキーを設定しています。

ここまでで設定は終わりです。

設定したWindows PCで、

CTRL+ALT+M
を押すと、テキストファイルを標準のテキストエディタで開かれます。
テキストエディタを何もいれていなければ、メモ帳で開かれるかと思います。

CTRL+ALT+D
を押すと、日付時間のタイムスタンプが自動挿入され、メモを打てる状態になります。
新規行でメモをさらに書く時も、
CTRL+ALT+D
を押します。


保存は、お使いのテキストエディタの上書き保存のショートカットキーを押してください。
ぼくの場合はCTRL+Sで上書き保存のエディタを使っています。

20170916_22

こんな感じで、アプリに依存せず、Windows 7/Windows 10の標準の機能だけで設定できる方法を使い、メモをとる準備ができます。
残念ながら、Windows 10 Sというセキュリティを追求しストアアプリしか動かないエディションが出ているようですので、おそらくこのスクリプトは使えないだろうと思います。

好みのテキストエディタをインストールできるなら、そのテキストエディタのマクロなりでやればいい話です。
ぼくもたとえば秀丸では秀丸のマクロで似たような機能のマクロを登録して使っています。

VBScriptで助かるのは、すべてのアプリで利用できるようになることです。たとえばGoogle Keepにタイムスタンプを入れたいときにWindowsでMS IMEでどうすりゃいいの、などと考えなくてもすみます。

|

« MyricaフォントのFontX形式、DOS/C用フォントさらに追加 | トップページ | マザー固定ピン折れのHP200LX修繕 »

コメント

Дед Мороз и Снегурочка в Нижнем Новгороде - http://dedmoroznazakaz.ru

[url=http://dedmoroznazakaz.ru] dedmoroznazakaz.ru - дед мороз и снегурочка на дом цены [/url]

投稿: DedMorozvet | 2017/10/03 11:39

はじめまして、vbsファイルを使ってみましたそのままだとうまくいきませんでしたが、メモ帳をアクティブにするなどしてタイムスタンプがでるようにはなったのですが、ショートカットキーでしようとするとうまくいきません、色々ためしていますが、何か助言などお願いします。

投稿: 橋本徹也 | 2017/10/08 10:07

橋本です。どうもすいません、ショートカットでもできるようになりました。sleepのじかんを500位にしたところできるのです。vbsファイルを直接ダブルクリックする場合は30でもできるのですが
お騒がせしました。

投稿: 橋本徹也 | 2017/10/13 20:35

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/69188/65800678

この記事へのトラックバック一覧です: Windows上でテキスト文頭にタイムスタンプを自動挿入するスクリプトを使ってすばやいメモとり:

« MyricaフォントのFontX形式、DOS/C用フォントさらに追加 | トップページ | マザー固定ピン折れのHP200LX修繕 »