めもらんだむ

メモ書きです。

TaskChute1のショートカットキー

  • TaskChute2ではショートカットキーをカスタマイズできる機能が実装されたが、TaskChute1にその機能はない。
  • 「スケジュール」メニューにアクセスするのに、昔のTaskChute関連のブログには「Alt + S」というショートカットキーが紹介されているが、Excel 2010では効かない。未確認だがExcel 2007も同じらしい。代わりに「Alt + X → S」という操作が必要。
  • 参考:Excel2010, 2007のTaskChuteメニューを高速に開く
    • AutoHotKeyを用いてショートカットキーを定義する方法も書かれている。

TaskChute1のrepeatsタスクでRun-time error '5'

TaskChuteを使い始めた。
とりあえず、無料版のTaskChute1を試しているので、気づいたことをメモ書きしていく。

まず戸惑ったのが、「(repeats)」のついたタスクの終了時刻を入力後、繰返しタスクをいつにするかのダイアログに入力しても、

Microsoft Visual Basic
  Run-time error '5';
  Invalid procedure call or argument

というエラーが発生し、繰返しタスクが生成されない問題。

Windows の Start > Control Panel > Region and Language で Format: English (United States)となっていたためだった。これを「Japanese (Japan)」に変更したら解決した。

あなどれないラジオ体操

  • ラジオ体操というと、小学生の夏休みの朝の風物詩という印象ですが、夏休みに限らず毎朝しっかり行うと良い運動になります。あなどれません。
    • 毎朝6:00に目覚し時計がわりにNHK第一のAMラジオをかける。しばらくして6:30〜6:40がラジオ体操。
    • ダンベルを持ちながら行うとさらに効きます。ちゃんとしたダンベルでなくてもペットボトルでOK。まずは、500ml(500g)から。
  • こんな効果があります。
    • 毎日10分の軽い運動が習慣となる。
    • 早起きの習慣がつく。
    • 特に肩に効く。肩凝り防止になる。

xyzzyのプロジェクタ表示モード(表示フォント等の切替え)

  • 会議等でxyzzyをプロジェクタに映す際に表示フォントを大きくしますが、共通設定ダイアログで変更するのはやや面倒です。表示フォントはlispでは変更できないようで、xyzzy.iniを切替えるにもxyzzyの再起動が必要なので、UWSCのスクリプトを使って切替えることにしました。

1. 下記のテキストを任意の名前のUWSCスクリプト(例えばxyzzy-projector.uws)として保存します。プロジェクタ表示時の設定として、フォントサイズを「23」、行番号表示を「なし」にしています。適宜変更ください。

//xyzzy-projector script

XyzzyID=GETID("xyzzy")
ifb XyzzyID=-1 then
  MSGBOX("xyzzyが起動していません。"); exitexit
endif

ClkItem(XyzzyID, "共通設定", CLK_MENU)
repeat
  csid=GETID("共通設定")
until csid>0

ClkItem(csid, "フォント", CLK_TAB)
ClkItem(csid, "23", CLK_LIST)

ClkItem(csid, "表示", CLK_TAB)
ClkItem(csid, "行番号", CLK_BTN, False)

ClkItem(csid, "OK", CLK_BTN)

2. 同様に下記のテキストを任意の名前のUWSCスクリプト(例えばxyzzy-standard.uws)として保存します。通常時の設定として、フォントサイズを「14」、行番号表示を「あり」にしています。適宜変更ください。

//xyzzy-standard script (disable projector)

XyzzyID=GETID("xyzzy")
ifb XyzzyID=-1 then
  MSGBOX("xyzzyが起動していません。"); exitexit
endif

ClkItem(XyzzyID, "共通設定", CLK_MENU)
repeat
  csid=GETID("共通設定")
until csid>0

ClkItem(csid, "フォント", CLK_TAB)
ClkItem(csid, "14", CLK_LIST)

ClkItem(csid, "表示", CLK_TAB)
ClkItem(csid, "行番号", CLK_BTN, True)

ClkItem(csid, "OK", CLK_BTN)

3. 1.のスクリプトを呼べばプロジェクタ表示モードに、2.のスクリプトを呼べば元に戻ります。私の場合、CraftLaunchに上記2つのスクリプトを登録して呼び出しています。menuHackerを使って、xyzzy.iniを定義し、上記2つのスクリプトを呼び出すメニューをxyzzyウィンドウのシステムメニューに登録しても良いと思います。

『Rubyレシピブック 268の技』のNo.163「ファイルに1行挿入する」の不具合

  • 『Rubyレシピブック 268の技』のNo.163「ファイルに1行挿入する」を試したが動作せず、対処したのでメモしておく。
  • http://www.notwork.org/rubyrecipebook/errata.htmlに書かれてある2箇所の訂正を入れても、renameのところでPermission deniedのエラーが出てしまう。tempファイルのrenameが出来ない様子。
  • 以下の対処で動作するようになった。

1. 冒頭に下記を入れる。

require "fileutils"

2. renameの行を下記の2行に変える。temp.flushしないとコピー先が空のファイルになってしまうので注意。

  temp.flush
  FileUtils.copy(temp.path, path)

WindowsでのTkの使用

Excelファイルの操作

  • RubyでExcel(excel_lib.rb)を使うと楽。
  • 例えば、下記のコードでfilename.xlsの最初のシートの内容をカンマ区切りで標準出力に出力できる。
#!ruby -Ks
require 'excel_lib'
excel = Excel.new
excel.visible = false
book = excel.copy_book('filename.xls')
sheet = book.sheets[1]
sheet.UsedRange.Rows.each do |row|
  record = []
  row.Columns.each do |cell|
    record << cell.Value
  end
  puts record.join(",")
end
book.Close
excel.Quit