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)」に変更したら解決した。
あなどれないラジオ体操
- ラジオ体操というと、小学生の夏休みの朝の風物詩という印象ですが、夏休みに限らず毎朝しっかり行うと良い運動になります。あなどれません。
- こんな効果があります。
- 毎日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ウィンドウのシステムメニューに登録しても良いと思います。
- 環境
- OS: Windows XP Pro SP2
- xyzzzy: ver.0.2.2.235
- UWSC: ver.4.1b
『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)
- 環境
- OS: Windows XP Pro SP2
- Ruby: 1.8.4 (2006-04-14) [i386-mswin32]
WindowsでのTkの使用
- Ruby One-Click InstallerでRubyをインストールしただけでは、「require 'tk'」としてもtk84.dllが無いとエラーを起こす。
- ActiveStateのActiveTclをインストールし再起動したら回避できた。
- 環境
- OS: Windows XP Home SP2
- Ruby: 1.8.4 (2006-04-14) [i386-mswin32] (One-Click Installer 184-19)
- ActiveTcl: 8.4.13.0.261555-win32-ix86
- 参考ページ
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