モレスキンなどを手に入れた途端、ライフログ記録頻度は格段にアップしたものの、どうもペンの携帯の方法でしっくり来るものがなかった。
今日ちょっとよさそうなペンを見つけたので記録しておく。
コンセプトは「とにかくシンプルに」。
入手したのはトンボのONBOOK。
手帳へのセットを想定した作りなので、書き易さ的なものはそれを重視しているペンには敵いそうもない。
ペン先は妙に丸いし、ペン先収納のためのボタンに指が触れやすいのである。
とは言え、豆型の断面と表面がマットなため、それほど持ちにくいわけでもない。実用に耐えるレベルと見ている。
手帳へのフィット感は抜群。
モレスキンのために作られたんじゃないかと思わせる。
背表紙への差し込みは相当ギリギリで、手帳を開いて隙間を作ってやらないと差しにくい。
逆に言うと、ペンを使うときには手帳を開くし、手帳を閉じていれば抜けにくい。理に敵っている。
モレスキンにペンをどのようにホールドするかはモレスキンユーザが必ず通る悩みなんじゃないかと思うが、シンプルさを重視する自分には一応の解になりそうな予感である。
「Inbox(受信箱)」「Sent(送信済み)」「すべて」は最初から用意されているもの。 他のリストはSmart Addで楽に入力できるように番号をつけた。 さらに細分化したい気もないではないが、タブが複数行並ぶのが嫌なのでこれで運用してみる。
転ばぬ先の杖程度。
'----------------------------------------------------------------------
' Sub : gsub_SaveAsText
' 全てのオブジェクトをテキストとして保存する
' 復旧にはLoadFromTextを用いる
' 例) LoadFromText acDataAccessPage, "", "ファイルパス"
'----------------------------------------------------------------------
Public Sub gsub_SaveAsText()
Dim obj As Object
Dim i As Long
Dim strDir As String
Dim strName As String
Dim tdf As TableDef
Dim qdf As QueryDef
On Error Resume Next
strDir = CurrentProject.Path & "\SaveAsText\"
If (PathIsDirectory(strDir) = False) Then
MkDir strDir
End If
'---< TABLE >
SaveAsText acDataAccessPage, "", strDir & "Tables" & gcntExtensionTxt
'---< QUERY >
For Each qdf In CurrentDb.QueryDefs
strName = qdf.Name
If Not (Left(strName, 1) = "~") Then
SysCmd acSysCmdSetStatus, strName & " Exporting..."
SaveAsText acQuery, strName, strDir & strName & gcntExtensionTxt
End If
Next qdf
'---< FORM >
For i = 0 To CurrentProject.AllForms.Count - 1
strName = CurrentProject.AllForms(i).Name
SysCmd acSysCmdSetStatus, strName & " Exporting..."
SaveAsText acForm, strName, strDir & strName & gcntExtensionTxt
Next i
'---< REPORT >
For i = 0 To CurrentProject.AllReports.Count - 1
strName = CurrentProject.AllReports(i).Name
SysCmd acSysCmdSetStatus, strName & " Exporting..."
SaveAsText acReport, strName, strDir & strName & gcntExtensionTxt
Next i
'---< MACRO >
For i = 0 To CurrentProject.AllMacros.Count - 1
strName = CurrentProject.AllMacros(i).Name
SysCmd acSysCmdSetStatus, strName & " Exporting..."
SaveAsText acMacro, strName, strDir & strName & gcntExtensionTxt
Next i
'---< MODULE >
For i = 0 To CurrentProject.AllModules.Count - 1
strName = CurrentProject.AllModules(i).Name
SysCmd acSysCmdSetStatus, strName & " Exporting..."
SaveAsText acModule, strName, strDir & strName & gcntExtensionTxt
Next i
'---< END >
MsgBox "Done.", vbInformation
End Sub
'---< データベースウィンドウ非表示 >
DoCmd.SelectObject acForm, Me.Name, True
DoCmd.RunCommand acCmdWindowHide
フォームに記述する場合のサンプル。 先にSelectObjectで自分自身を選択しておくのがミソ。
下の例ではmcntDetail(定数),mrst!ItemName(レコードセットから取り出した品名)を60byteまで削るか、60byte以下ならスペースで補完して返す。 固定長テキストの作成時のサンプル。
Dim i As Long
Dim strTemp As String
Dim str As String
strTemp = mcntDetail & " " & mrst!ItemName
i = LenB(StrConv(strTemp, vbFromUnicode))
If (i > 60) Then
Do Until (i <= 60)
strDetail = Left(strTemp, Len(strTemp) - 1) 'LENで削り、LENBでカウント
i = LenB(StrConv(strTemp, vbFromUnicode)) '全角文字がLENBで切断されるとNULL文字が発生する
Loop
End If
i = 60 - LenB(StrConv(strTemp, vbFromUnicode)) '不足分を補完
str = str &strTemp & Space(i) 'ぴったり60Byteに
前にも似たようなことがあった気がするんだが、 blosxom公式のPlugin Registryからrecent_entriesプラグインを落とそうと思ったらリンク切れだった。 どうも検索してみると何年も前からその状態らしい。 今まで使おうとしたことがなかったから気がつかなかったぜ。
Recent_Entriesは死すとも、例によってkyoさんがlatest_entriesというプラグインを公開していらっしゃるので問題ないのである。ありがたやありがたや。
他のブログサービスに移行することも考えないではないが、特にコメントの収集や(スパムと戦う必要も出てくる)トラックバックしたいという意図がないから、他の仕様が気にかかる。
画像も好きなだけアップロードし、回り込んだりセンタリングしたりやり放題したいではないか。
テーブルも手打ちでチームごとに色変えたりしたいではないか。
ローカルのファイルをダウンロード&アップロードするだけでバックアップ&レストアしたいではないか。
ええじゃないかええじゃないか。当面blosxomで行ってしまえ。