Sub 選択したセルに1から順に番号を入れる()
Count = 1
For Each buf In Selection.Cells
buf.Value = Count
Count = Count + 1
Next
End Sub
2010年3月29日月曜日
tcl 文字列を指定した長さでリストで返す
proc splitRange args {
set userString [lindex $args 0]
set range [lindex $args 1]
set bufferList {}
if {[llength $args] != 2} {
puts "wrong # args: should be \"splitRange string range\""; return
}
if {$range <= 0} {
puts "wrong # arg : range should be over 0"
return}
for {set idx 0} {$idx < [string length $userString]} {set idx [expr $idx + $range]} {
set lastIdx [expr $idx + $range -1]
lappend bufferList [string range $userString $idx $lastIdx]
}
return $bufferList
}
set userString [lindex $args 0]
set range [lindex $args 1]
set bufferList {}
if {[llength $args] != 2} {
puts "wrong # args: should be \"splitRange string range\""; return
}
if {$range <= 0} {
puts "wrong # arg : range should be over 0"
return}
for {set idx 0} {$idx < [string length $userString]} {set idx [expr $idx + $range]} {
set lastIdx [expr $idx + $range -1]
lappend bufferList [string range $userString $idx $lastIdx]
}
return $bufferList
}
2010年3月21日日曜日
TclでTeratermを使うためのパッケージ ver0.1
フォルダ名「teraterm」をlibに置き、そのフォルダにいか2つのをおく。
pkgIndex.tcl
package ifneeded teraterm 0.1 [list source [file join $dir teraterm.tcl]]
teraterm.tcl
package require Tcl
package require Tk
package provide teraterm 0.1
namespace eval ::teraterm {
variable ttmacro "C:/Program Files/teraterm/ttpmacro.exe"
namespace export ttstart selectMacro
}
proc teraterm::ttstart {macro args} {
variable ttmacro
set cmd ""
#exec以下の要素を \" で囲むと解釈できる
#
append cmd "\"" $ttmacro "\"" " "
append cmd "\"" $macro "\"" " "
foreach i $args {
append cmd "\"" $i "\"" " "
}
set param [string range $cmd 0 end-1]
return [catch {eval exec $cmd}]
}
proc teraterm::selectMacro {} {
set fileTypeList {
{{Teraterm macro} {.ttl}}
}
set filePath [tk_getOpenFile -filetypes $fileTypeList]
if {$filePath eq ""} {set filePath ""}
return $filePath
}
pkgIndex.tcl
package ifneeded teraterm 0.1 [list source [file join $dir teraterm.tcl]]
teraterm.tcl
package require Tcl
package require Tk
package provide teraterm 0.1
namespace eval ::teraterm {
variable ttmacro "C:/Program Files/teraterm/ttpmacro.exe"
namespace export ttstart selectMacro
}
proc teraterm::ttstart {macro args} {
variable ttmacro
set cmd ""
#exec以下の要素を \" で囲むと解釈できる
#
append cmd "\"" $ttmacro "\"" " "
append cmd "\"" $macro "\"" " "
foreach i $args {
append cmd "\"" $i "\"" " "
}
set param [string range $cmd 0 end-1]
return [catch {eval exec $cmd}]
}
proc teraterm::selectMacro {} {
set fileTypeList {
{{Teraterm macro} {.ttl}}
}
set filePath [tk_getOpenFile -filetypes $fileTypeList]
if {$filePath eq ""} {set filePath ""}
return $filePath
}
2010年3月20日土曜日
eclipse で tcl
preadesからJREなしのeclipse3.4(プラットフォームだけ)をダウンロード。
EMF(Coreのみ)をダウンロード
DLTKのコアとTclをダウンロード
eclipseをいれたら、
dropinsフォルダに下にeclipseという名前のフォルダを作って、
EMFのfeaturesとpluginsを格納する。
同じeclipseフォルダにDLTKコアとTclのfeaturesとpluginsを入れておく。
eclipse を cleanオプション指定して起動する。
Tclを実行するにはインタプリタが必要。
ActiveStateからActiveTclをダウンロードしてインストールしておく。
また、デバッグ用ツールもActiveStateにあるのでこれもダウンロードしてインストールしておく。
(デバッグ用ツールのダウンロードページはeclipseでTclデバッグ設定する箇所にリンクがあるのでそこから行ける)
以上のことがうまく行けば、eclipseでTclが使えます。
ブレークポイント指定すれば止めることができるし、変数の中身も見える。
(デバッグパースペクティブ)
ややこしいのはEMFやDLTKをeclipseに追加するところ。
解凍したものをただ既存のfeatures,pluginsフォルダにコピーしても
うまく認識できなかった。(わたしがやった場合で)
今回はアーカイブされてたものを展開してeclipse以下にコピーするやり方をしました。
ソフトウェア更新でオンラインでやらなかったのは、プロキシによって通らないケースを前提にしていたからです。
TkもSWTみたいにできるようになったらいいな。
EMF(Coreのみ)をダウンロード
DLTKのコアとTclをダウンロード
eclipseをいれたら、
dropinsフォルダに下にeclipseという名前のフォルダを作って、
EMFのfeaturesとpluginsを格納する。
同じeclipseフォルダにDLTKコアとTclのfeaturesとpluginsを入れておく。
eclipse を cleanオプション指定して起動する。
Tclを実行するにはインタプリタが必要。
ActiveStateからActiveTclをダウンロードしてインストールしておく。
また、デバッグ用ツールもActiveStateにあるのでこれもダウンロードしてインストールしておく。
(デバッグ用ツールのダウンロードページはeclipseでTclデバッグ設定する箇所にリンクがあるのでそこから行ける)
以上のことがうまく行けば、eclipseでTclが使えます。
ブレークポイント指定すれば止めることができるし、変数の中身も見える。
(デバッグパースペクティブ)
ややこしいのはEMFやDLTKをeclipseに追加するところ。
解凍したものをただ既存のfeatures,pluginsフォルダにコピーしても
うまく認識できなかった。(わたしがやった場合で)
今回はアーカイブされてたものを展開してeclipse以下にコピーするやり方をしました。
ソフトウェア更新でオンラインでやらなかったのは、プロキシによって通らないケースを前提にしていたからです。
TkもSWTみたいにできるようになったらいいな。
登録:
投稿 (Atom)