« 2006年4月 | トップページ | 2006年6月 »

2006年5月の44件の投稿

2006/05/31

急に眠気が……

ま、まぶたが垂れ下がる……。
なんでこんなに眠いのか。

……よく考えると、昨夜は会社の人と飲みに行くので9時前に退社したのはいいとして、11時過ぎに帰宅後、仕事を始めてしまい、気が付いたら午前5時過ぎだったのでした。

朝は普通に出社したので……そりゃあ、眠いわな。

何かにはまってしまうと時間を忘れる癖は治さないとねぇ。長時間やりすぎると効率は落ちるものなのだけれども……のってきているとき or はまっているときは、そんな基本も忘れてしまうのですね。

不治の病、っぽい(苦笑)

2006/05/30

【覚書】Perlで特定タグ以外を置換

知人より、以下のようにすれば、とアドバイスを受ける。

$chkStr=~s/<(?!(\/?)(add|del|notice|bgcolor)[ >])([^>]*)>/&lt;$1$2$3&gt;/g;
キーワード(add|del|notice|bgcolor)直後に[ >]を付けたあとで否定(?!)するのがミソ。
なるほどねぇ。
#! /usr/bin/perl -wとしているとwarningが出てしまうが、それくらいは我慢しようか

2006/05/29

正規表現なんて嫌い…

“複数の文字『列』のどれにも当てはまらない”というのを書こうとして、はまる。 知人にPerlなら「?!」でいけるかも、と教えてもらったが、どうもうまく行かない場合があって挫折。 結局二回置換してお茶を濁す(^^;。

2006/05/28

ココログ管理画面&XML-RPC APIの機能をJavaScriptで操作してみる

管理画面を表示した状態でブックマークレット経由でJavaScriptファイルを呼んでいろいろ試し中。

とりあえずの目的は、

  1. 記事ID→固定リンクのインデックスファイル化
    XML-RPC API(metaWeblog.getRecentPosts)で取得して来た全記事情報から、必要な情報を抜き出して(最低限、記事IDと固定リンクは必須)インデックスファイルとして登録

  2. コメント一覧/トラックバック一覧のファイル化
    管理画面のコメント一覧・トラックバック一覧(対象記事の情報含む)をファイル化して登録
    このとき、管理画面上からは不足している記事ID→固定リンクの変換は、1.で登録したインデックスファイルの情報を元に行う

  3. インデックスファイルの差分更新
    管理画面またはXML-RPC API(mt.getRecentPostTitles)で取得した記事一覧と、1.のインデックス情報とを比較し、登録されていない記事IDの分のみ情報を取得後、インデックスファイルを更新

  4. 自分のブログ上からの利用
    コメント一覧・トラックバック一覧のツリー表示等

なのだけれども。
1(3)、2を定期的に行うようにすれば……
先は長そうです。

とりあえず、現状の覚え書き。

  • 管理画面からのXML-RPC APIの利用は、prototype.jsXML.ObjTree(ObjTree.js)の組合せでなんとかなりそう。
    • XML-RPC APIのURLは"https://app.cocolog-nifty.com/t/api/"(管理画面からだとhttp://~はNG)
    • prototype.jsではPOST時の'Content-type'が'application/x-www-form-urlencoded'で固定だが、これは'text/xml'等にしておかないと、ココログのXML-RPC APIでエラーとなる(パッチが必要)

  • ファイルを更新するためには前のファイルを削除する必要が有る(XML-RPC API(metaWeblog.newMediaObject)だと、重複するファイルは勝手にリネームされてしまうらしい)

    ファイル削除は、ファイルマネージャ(https://app.cocolog-nifty.com/t/t/app/control/files)に、引数
    __mode=delete&type=file&magic_token=(管理画面から取得)&path=(対象ディレクトリ名)&id=(ファイル名)
    を付けてコールしてやれば出来そう。
    • magic_tokenは必須、予め管理画面の適当なページから取得する必要有り(管理画面内では共通(?))
    • id=で指定するファイル名は、フルパス名(ディレクトリ含む)でないとダメらしい(path=も指定しているのになぜ?)
    • type=fileは無くても削除出来た(同名のディレクトリがあると誤動作するのかも?)

  • 管理画面の(記事/コメント/トラックバック)一覧は、URLにlimit=(最大数)オプションを付けることで、最大表示数を調整できる(あり得ないくらいに大きな数を指定してやればページ内に全タイトル表示可能)

2006/05/27

水物と按摩の日

今日は比較的早くに目が覚め、外出するにはあまり天気も良くないし、とPCに向かうも……どうも、仕事もプライベートも共に、キーが進みません。

こういうのりが悪い日にはきっと何をやっても効率が宜しくないので……思い切って、PCはほっぽって気分転換をはかることに。

そんなわけで、精神的癒しを求めて海遊館&身体的癒しを求めてタイ式マッサージの店に、それぞれ行ってきたのでした。

写真を整理したりとかいろいろやりたいことはあるのだけど……いい感じで眠いので、今日はもう寝ます(笑)

2006/05/26

【Excel】属性をタグに変換後CSV形式で保存

【Excel】属性指定検索/属性をタグに変換』と『【Excel】属性をタグに変換(ちょっとだけ改善)』との続き。

現在のブックの全シートで、属性をタグに変換後、シート毎にCSV形式で自動保存するようにしてみた。

Sub changeAttribute()
    Dim orgFile As String
    Dim workDir As String
    Dim workFile As String
    Dim saveName As String
    
    orgFile = ActiveWorkbook.FullName
    
    workDir = Replace(ActiveWorkbook.Name, ".xls", "")
    workDir = Replace(workDir, " ", "")
    workDir = Replace(workDir, ".", "-")
    workDir = ActiveWorkbook.Path & "\" & workDir & "-csv"
    If Dir(workDir, vbDirectory) = "" Then
        MkDir workDir
    End If
    
    workFile = workDir & "\_temp_.xls"
    If Dir(workFile, vbArchive) <> "" Then
        Kill workFile
    End If
    ActiveWorkbook.SaveAs workFile

    For Each actSheet In ActiveWorkbook.Worksheets
        actSheet.Activate
        With ActiveSheet
            For Each currentRange In .UsedRange
                currentRange.Activate
                addTags
            Next
            saveName = Replace(.Name, " ", "")
            saveName = Replace(saveName, ".", "-")
            saveName = workDir & "\" & saveName & ".csv"
            If Dir(saveName, vbArchive) <> "" Then
                Kill saveName
            End If
            .SaveAs FileName:=saveName, FileFormat:=xlCSV
'            MsgBox "属性をタグに置換し'" & .saveName & "'の名前で保存しました"
        End With
    Next
    MsgBox "属性をタグに置換し'" & workDir & "'内にCSV形式で保存しました"
    
    curBook = ActiveWorkbook.Name
        
    Workbooks.Open orgFile

    If Dir(workFile, vbArchive) <> "" Then
        Kill workFile
    End If
    
    Workbooks(curBook).Close SaveChanges:=False

End Sub

Sub addTags()
    Dim ColorString As Variant
    ColorString = Array("null", _
        "#000000", "#FFFFFF", "#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF", _
        "#800000", "#008000", "#000080", "#808000", "#800080", "#008080", "#C0C0C0", "#808080", _
        "#9999FF", "#993366", "#FFFFCC", "#CCFFFF", "#660066", "#FF8080", "#0066CC", "#CCCCFF", _
        "#000080", "#FF00FF", "#FFFF00", "#00FFFF", "#800080", "#800000", "#008080", "#0000FF", _
        "#00CCFF", "#CCFFFF", "#CCFFCC", "#FFFF99", "#99CCFF", "#FF99CC", "#CC99FF", "#FFCC99", _
        "#3366FF", "#33CCCC", "#99CC00", "#FFCC00", "#FF9900", "#FF6600", "#666699", "#969696", _
        "#003366", "#339966", "#003300", "#333300", "#993300", "#993366", "#333399", "#333333" _
    )
    Dim BgColorID As Long
    Dim BgTagStart As String
    Dim BgTagEnd As String
    
    With ActiveCell
        BgColorID = .Interior.ColorIndex
        If 0 < BgColorID And BgColorID <= 56 Then
            BgTagStart = "<bgcolor name=" + Chr(34) + ColorString(BgColorID) + Chr(34) + ">"
            BgTagEnd = "</bgcolor>"
        Else
            BgTagStart = ""
            BgTagEnd = ""
        End If
        addTagsSub BgTagStart, BgTagEnd
        If .NumberFormat <> "General" Then
            .NumberFormat = "General"
        End If
        .Interior.ColorIndex = 0
        .Font.ColorIndex = 0
        .Font.Strikethrough = False
    End With
End Sub

Sub addTagsSub(BgTagStart, BgTagEnd)
    Dim ci As Long, cj As Long, length As Long, mode As Long, orglength As Long
    Dim orgText As String, chgText As String
    
    length = 0
    mode = 0
    isIndent = 1
    With ActiveCell
        If Application.WorksheetFunction.IsText(.Value) = True Then
            orgText = .Value
            chgText = ""
            orglength = Len(orgText)
            For ci = 1 To orglength
                If isIndent = 1 Then
                    If Mid(orgText, ci, 1) <> ">" And _
                       Mid(orgText, ci, 1) <> " " Then
                        If 0 < length Then
                            chgText = Mid(orgText, ci - length, length)
                            length = 0
                        End If
                        chgText = chgText + BgTagStart
                        isIndent = 0
                    End If
                End If
                If isIndent = 0 Then
                    With .Characters(ci, 1).Font
                        If .Strikethrough = True Then
                            mode = 1
                            tagStart = "<del>"
                            tagEnd = "</del>"
                        ElseIf .ColorIndex = 3 Then ' Red
                            mode = 2
                            tagStart = "<add>"
                            tagEnd = "</add>"
                        ElseIf .ColorIndex = 5 Or .ColorIndex = 32 Then ' Blue
                            mode = 3
                            tagStart = "<notice>"
                            tagEnd = "</notice>"
                        End If
                    End With
                End If
                If mode <> 0 Then
                    If 0 < length Then
                        chgText = chgText + Mid(orgText, ci - length, length)
                    End If
                    length = 1
                    For cj = ci + 1 To orglength
                        With .Characters(cj, 1).Font
                            If (mode = 1 And .Strikethrough = True) Or _
                               (mode = 2 And .ColorIndex = 3) Or _
                               (mode = 3 And (.ColorIndex = 5 Or .ColorIndex = 32)) Then
                                length = length + 1
                            Else
                                Exit For
                            End If
                        End With
                    Next
                    chgText = chgText + tagStart + Mid(orgText, ci, length) + tagEnd
                    ci = ci + length - 1
                    length = 0
                    mode = 0
                Else
                    length = length + 1
                End If
            Next
            If 0 < length Then
                chgText = chgText + Mid(orgText, ci - length, length)
            End If
            .Value = chgText + BgTagEnd
        Else
            .Value = BgTagStart & CStr(.Value) & BgTagEnd
        End If
    End With
End Sub

機能的には、

  1. ブックのあるフォルダ下に“(ブック名)-csv”というフォルダを作成
  2. 各シートの全有効セルについて
    • 取り消し線の付いた文字を<del>~</del>というタグに置換
    • 赤文字は追加とみなし、<add>~</add>というタグに置換
    • 青文字は注意書きとみなし、<notice>~</notice>というタグに置換
    • 背景色を<bgcolor name="#xxxxxx">~</bgcolor>というタグに置換
    という処理を実施(ただし数式が入っているセルは背景色のみ対応)
  3. 変換後のシートを、1. で作ったフォルダの下に“(シート名).csv”というファイル名でCSV形式で保存
ということをやってるだけ。
なお、セルのテキスト頭の>はインデントとみなし、bgcolorタグはその後につける

とりあえず形にはなったけれど、遅すぎる……。
文字数が多いセルに対して次のような処理を行っただけで、やたらと時間がかかることが判明。

Sub checkAttribute()
    Dim ci As Long
    Dim ModeStr As String
    
    ModeStr = ""
    
    With ActiveCell
        If Application.WorksheetFunction.IsText(.Value) = True Then
            For ci = 1 To .Characters.Count
                With .Characters(ci, 1).Font
                    If .Strikethrough = True Then
                        ModeStr = ModeStr & "1"
                    ElseIf .ColorIndex = 3 Then
                        ModeStr = ModeStr & "2"
                    ElseIf .ColorIndex = 5 Or .ColorIndex = 32 Then
                        ModeStr = ModeStr & "3"
                    Else
                        ModeStr = ModeStr & "0"
                    End If
                End With
            Next
            MsgBox ModeStr
        End If
    End With
End Sub
どうやら .Characters(locate,length).Font 以下のアクセスがボトルネックらしい……けれど、セル内部の文字列で部分的に属性を変えてあるのをチェックしようとすると、この方法しかないみたいなので、どうしようもないのかな……教えて、えらいひと。
結局、セル属性が保存されるようなテキスト形式で保存したものを加工する方が速度的には断然速そう……問題はその構造を自分で理解して整形するプログラムを書く時間がかかるので、片手間じゃやれない、ってことだけど(_ _;)/

【メモ】
Excel関係でいろいろ調べたい場合、『Shun's Page』が実践的で便利そう。

2006/05/25

セキュリティが厳しくなるのは止むを得ないとして

世の中の流れとして、仕事の効率を犠牲にしてでも、セキュリティ面を優先する、という風潮になりつつありますね。
自分の会社でも、USBメモリ/HDDや個人用PCの持込禁止からはじまって、下手するとネットアクセスまで制限されそうな勢いです。

でも現実問題、既にネットで資料を検索せずに仕事を進めるのは無理な状態となっているのですが……この辺り、どうするかを考えないといけないなぁ……。

2006/05/24

【Excel】色一覧

Excelにおいて標準で選択できる色のColorIndex・色名と、16進表記・HTMLカラーネームの一覧です。
HTMLカラーネームが付いているのは16色だけか……Webセーフカラーじゃないものもあるし
Color
Index
色見本 色名 16進表記
(RGB順(*1))
HTML カラー ネーム
0(自動)自動 (void)(void)
1#000000black
2#FFFFFFwhite
3#FF0000red
4明るい緑#00FF00lime
5#0000FFblue
6#FFFF00yellow
7ピンク#FF00FFfuchsia
8水色#00FFFFaqua
9濃い赤#800000maroon
10#008000green
11濃い青#000080navy
12濃い黄#808000olive
13#800080purple
14青緑#008080teal
1525%灰色#C0C0C0silver
1650%灰色#808080gray
17グレー#9999FF(void)
18プラム#993366(void)
19アイボリー#FFFFCC(void)
20薄い水色#CCFFFF(void)
21濃い紫#660066(void)
22コーラル#FF8080(void)
23オーシャンブルー#0066CC(void)
24アイスブルー#CCCCFF(void)
25濃い青#000080navy
26ピンク#FF00FFfuchsia
27#FFFF00yellow
28水色#00FFFFaqua
29#800080purple
30濃い赤#800000maroon
31青緑#008080teal
32#0000FFblue
33スカイブルー#00CCFF(void)
34薄い水色#CCFFFF(void)
35薄い緑#CCFFCC(void)
36薄い黄#FFFF99(void)
37ペールブルー#99CCFF(void)
38ローズ#FF99CC(void)
39ラベンダー#CC99FF(void)
40ベージュ#FFCC99(void)
41薄い青#3366FF(void)
42アクア#33CCCC(void)
43ライム#99CC00(void)
44ゴールド#FFCC00(void)
45薄いオレンジ#FF9900(void)
46オレンジ#FF6600(void)
47ブルーグレー#666699(void)
4840%灰色#969696(void)
49濃い青緑#003366(void)
50シーグリーン#339966(void)
51濃い緑#003300(void)
52オリーブ#333300(void)
53#993300(void)
54プラム#993366(void)
55インディゴ#333399(void)
5680%灰色#333333(void)

(*1)ここでの16進表記はRGB(Red・Green・Blue)順です。ExcelのColorプロパティに16進(&Hxxxxxx)指定する場合にはBGR順となるので注意して下さい。
【2006.05.25】
“スカイブルー”以降のColorIndexが間違っていたのを修正
 誤) 17~40 → 正 )33~56
17~32を追加。
なんで重複している色があるのだろう……歴史的なものなのかなぁ?
【2009.12.15】
16進表記に関する註釈(表記はRGB順、Excelで16進指定時はBGR順)を追加。

【Excel】属性をタグに変換(ちょっとだけ改善)

昨日の記事のままだとあまりにお粗末なので、文字列取り出す処理のところだけちょっと改良。

でも美しくないことには変わりない(_ _;)/

Sub addTags()
    Dim ci As Long, cj As Long, length As Long, mode As Long
    Dim chgText As String
    
    length = 0
    mode = 0
    isIndent = 1
    With ActiveCell
        chgText = ""
        ci = 1
        If Application.WorksheetFunction.IsText(.Value) = True Then
            For ci = 1 To .Characters.Count
                If isIndent = 1 Then
                    If .Characters(ci, 1).Text <> ">" And _
                       .Characters(ci, 1).Text <> " " Then
                        isIndent = 0
                    End If
                End If
                If isIndent = 0 Then
                    If .Characters(ci, 1).Font.Strikethrough = True Then
                        mode = 1
                        tagStart = "<del>"
                        tagEnd = "</del>"
                    ElseIf .Characters(ci, 1).Font.ColorIndex = 3 Then ' Red
                        mode = 2
                        tagStart = "<add>"
                        tagEnd = "</add>"
                    End If
                End If
                If mode <> 0 Then
                    If 0 < length Then
'                        chgText = chgText + .Characters(ci-length, length).Text
                        chgText = chgText + getStringFromCharacters(ActiveCell, ci - length, length)
                    End If
                    length = 1
                    For cj = ci + 1 To .Characters.Count
                        If (mode = 1 And .Characters(cj, 1).Font.Strikethrough = True) Or _
                           (mode = 2 And .Characters(cj, 1).Font.ColorIndex = 3) Then
                            length = length + 1
                        Else
                            Exit For
                        End If
                    Next
'                    chgText = chgText + tagStart + .Characters(ci, length).Text + tagEnd
                    chgText = chgText + tagStart + getStringFromCharacters(ActiveCell, ci, length) + tagEnd
                    ci = ci + length - 1
                    length = 0
                    mode = 0
                Else
                    length = length + 1
                End If
            Next
            If 0 < length Then
'                chgText = chgText + .Characters(ci-length, length).Text
                chgText = chgText + getStringFromCharacters(ActiveCell, ci - length, length)
            End If
            .Value = chgText
        End If
    End With
End Sub

Function getStringFromCharacters(tgtCell, start, length) As String
    Dim ci As Long, cnt As Long, locate As Long, rest As Long
    
    getStringFromCharacters = ""
    cnt = length / 256
    locate = start
    With tgtCell
        For ci = 1 To cnt
            getStringFromCharacters = getStringFromCharacters + .Characters(locate, 256).Text
            locate = locate + 256
        Next
        rest = length - 256 * cnt
        If 0 < rest Then
            getStringFromCharacters = getStringFromCharacters + .Characters(locate, rest).Text
        End If
    End With
End Function

【2006.05.26】
注釈と背景色のタグ変換対応&結果をシート毎にCSV形式で自動保存するように修正→ソースはこちら

【覚書】IEの右クリック→ソースの表示に未対応のエディタを対応させる

テキストファイルの編集には欠かせないテキストエディタ。
ある種の人間に取っては必需品であり、使いなれたエディタが無い環境だと作業効率が1/2~1/3くらいになったりしますので、結構死活問題だったりします。
とはいえ、仕事上では自分のPCが使えないなんてことは結構あるので実際はやむを得ない場合も多いですが、せめて自分のPC上ではエディタを統一したいもの。

私はDOS時代にVZ Editor派だった名残で、今でも WZ Editor 4.0 を愛用しているわけですが(環境移行が面倒で、5.0は買っていない)。

ダイヤモンドカーソルが使えないエディタなんてクリープを入れないコーヒー、高笑いの無い友○詳みたいなものだ、とか言ってみる(^^;

これ、ひとつだけ困ったことがあって、窓の手の ie(1) でソースを表示するエディタとして登録しておいても、実際に→クリック→ソースの表示(V)をしようとしたら、訳のわからない新規ファイルを一杯開いてしまうだけで、肝心のソースが開けないのですよね。

要は、引数として指定するファイル名に空白が含まれているとダメということで……それでも、普通の使い方では "%1" とかして引数をダブルコーテーションで括って指定してやれば問題は無いのですが、IEの右クリックから呼出す場合、括ってくれないのですよ(レジストリでもそういう設定が出来ない模様)。

というわけで、秀丸を指定したりしていましたが(ちなみに、窓の手で動作確認出来ているのは、『秀丸エディタ』『EmEditor』『TeraPad』)、この操作だけエディタが違うと、どうにも気持ちが悪い……。

で、ふと思いついたのが、バッチファイル(コマンドスクリプト)を介してやる、という方法。

@echo off

:if "%1" == "C:\Documents" goto VIEW2 => NG
if "C:\Documents" == "%1" goto VIEW2

:VIEW1
echo "VIEW1"
"C:\Program Files\WZ EDITOR\wzeditor.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto END

:VIEW2
echo "VIEW2"
"C:\Program Files\WZ EDITOR\wzeditor.exe" "%1 %2 %3 %4 %5 %6 %7 %8 %9"
goto END

:END
エディタと同じフォルダにこのバッチファイル(wz.cmd)を置いて、エディタの実行ファイルの代わりにこのバッチファイルのフルパスを『ソースを表示するエディタ』として登録してやれば、ちゃんとソースが表示されるようになりました。
WZ以外でも実行ファイルへのパスさえ置き換えてやれば使えそうに思えます。
一瞬プロンプトが開く様子が見えるのは……ま、ご愛敬ということで

ブログに曲を流せる装置?!

Web拍手より。

閑古鳥が鳴いているのでそれ程頻繁にチェックしていませんでした。返事が遅れてスミマセン

【2006.05.22 22時】
| ブログに曲を流せる装置を置くにはどうしたらいいのでしょうか?;

装置……というか、ここの左下に設置してあるようなBGMを選択するフォームのことでしたら、とりあえず
【Web】BGM再生用JavaScript:曲選択フォーム複数設置
をご覧になって下さい。
なお、ココログ以外の場合、当方では解りかねますが、はに丸さんの
ブログ別!音楽を流す方法:ブログで音楽を流す方法
が参考になるかと思います。

2006/05/23

【Excel】属性指定検索/属性をタグに変換

ExcelのVBAって、面倒すぎる……BASICってこんなに使いにくかったっけか?

といっても、ほとんどN88-BASIC(86)しかいじったこと無いけど

ヘルプも極めて使いづらいし(_ _;)/。
これで上手にプログラム組める人、尊敬しますわ。

今度もお仕事がらみ。
先日の続きで、インデントが深くなりすぎて、各要素の関係がExcelの表だとさっぱりわからないため、XMLに変換してみようと思いつく。

ExcelにもXML出力はあるけれど、ユーザとしては必要の無い情報が多いし解析が面倒なので深く考えずにパス。
CSV出力をPerlで整形してXMLにすることに。

そちらはとりあえず雛形が出来たのだけれども、考えてみれば、文字の色や背景色の属性は CSV には落ちてくれない……Excel上では削除・追加箇所などを色分けしたりしているので、これだと少々不便。

で、ExcelのVBAで、色などの属性をタグに置換することを思いつき……実現しようとして、はまる。

あ、どうせならVBAでXMLに変換しろよ、とかいうの禁止(苦笑)

まず、属性指定の検索方法がわからなかったので、いろいろ調べてみたところ、こんな感じで出来る模様(取り消し線指定されているセルを検索するサンプル)。

Sub searchStrikethroughCell()
    With Application.FindFormat
        .Clear
        With .Font
            .Strikethrough = True
        End With
    End With
    

    Dim FoundCell As Range
    Set FoundCell = ActiveCell.CurrentRegion.Find(What:="*", After:=ActiveCell, SearchOrder:=xlByRows, _
      SearchDirection:=xlNext, SearchFormat:=True)
    
    If FoundCell Is Nothing Then
        MsgBox "見つかりませんでした"
    Else
        FoundCell.Activate
    End If
    
End Sub

ところが、セル中の文字列の一部だけに取り消し線が設定されているような場合だと、上の方法だと検索にかからない……。

結局、うまい方法が見つからないため、地道に有効なセルを順にたどり、さらにその中身を Characters を使って一文字ずつ属性を調べるという、全く持って効率の悪い方法に。

それに、属性自体はなるべく保存したままにしたかったので、最初は
.Characters(locate, length).text = tagStart + .Characters(locate, length).text + tagEnd
のような感じで、見つかった文字列を整形してその範囲だけタグを付けて置換、という方法でやっていたのだが、どうやら、整形後のセルのテキスト全体が256文字を越えてしまうと、.Characters(locate, length).text への代入が無視されてしまう(256文字以下だときちんと置き換わる)、という現象に気づき、泣く泣くテキスト全体を置換することに。
これだともともとの属性が死んでしまうのだが、やむをえない。

うまい方法があったら教えてください>有識者

とりあえず、
取り消し線付き文字列→<del>~</del>
赤色文字列→<add>~</add>
とするサンプル。

Sub changeAttribute()
    For Each currentRange In ActiveSheet.UsedRange
        currentRange.Activate
        addTags
    Next
    MsgBox ("属性をタグに置換しました")
End Sub

Sub addTags()
    Dim ci, cj, length, mode As Long
    Dim chgText, tmpText As String
    
    length = 0
    mode = 0
    isIndent = 1
    
    With ActiveCell
        chgText = ""
        ci = 1
        If Application.WorksheetFunction.IsText(.Value) = True Then
        
            Do While ci <= .Characters.Count
                If isIndent = 1 Then
                    If .Characters(ci, 1).text <> ">" And .Characters(ci, 1).text <> " " Then
                        isIndent = 0
                    End If
                End If
                If isIndent = 0 Then
                    If .Characters(ci, 1).Font.Strikethrough = True Then
                        mode = 1
                        tagStart = "<del>"
                        tagEnd = "</del>"
                    ElseIf .Characters(ci, 1).Font.ColorIndex = 3 Then ' Red
                        mode = 2
                        tagStart = "<add>"
                        tagEnd = "</add>"
                    End If
                End If
                If mode <> 0 Then
                    tmpText = .Characters(ci, 1).text
                    length = length + 1
                    For cj = ci + 1 To .Characters.Count
                        If (mode = 1 And .Characters(cj, 1).Font.Strikethrough = True) Or _
                            (mode = 2 And .Characters(cj, 1).Font.ColorIndex = 3) Then
                            tmpText = tmpText + .Characters(cj, 1).text
                            length = length + 1
                        Else
                            Exit For
                        End If
                    Next
                    chgText = chgText + tagStart + tmpText + tagEnd
                    ci = ci + length - 1
                    length = 0
                    mode = 0
                Else
                    chgText = chgText + .Characters(ci, 1).text
                End If
                ci = ci + 1
            Loop
            
            .Value = chgText
            
        End If
    End With
End Sub

ああ、全く持って美しくない(_ _;)/

【2006.05.24】
addTags()だけちょっと改良してみた→ソースはこちら

【2006.05.26】
注釈と背景色のタグ変換対応&結果をシート毎にCSV形式で自動保存するように修正→ソースはこちら

【覚書】Perlで配列のメンバとしてHASH変数を追加する、他

忘れないうちにメモ書き。
しばらく書いてないのですっかり忘れてしまってましたが……Perlって構造体使えないのですね(ナニヲイマサラ)。

代わりに配列とHASHを駆使すれば似たようなことは出来るようですが。
配列にHASHを追加するには、
push( @array, { %hash } ) ;
でよい……のかな?。

{ }を付けわすれるとうまくいかない

以下、サンプル(上記の他、HASHへの値セットパターンいくつか&サブルーチンへ渡す引数をリファレンス渡しにする例。処理内容には特に意味無し)。

#! /usr/bin/perl -w

my @list = () ;

%tmp1 = ( 'id', '11111', 'name', 'R.B' ) ;
push( @list, { %tmp1 } ) ;

%tmp2 = (
    id      =>  '22222'
,   name    =>  'D.E'
) ;
push( @list, { %tmp2 } ) ;

my  %tmp3 ;
$tmp3{'id'} = '33333' ;
$tmp3{'name'} = 'W.K' ;
push( @list, { %tmp3 } ) ;


my $data = 'id,12345,name,A.K:id,67890,name,S.T:id,10293,name,G.H' ;
my @unit = split( ':', $data ) ;
for my $elm ( @unit ) {
    my %tmp = split( ',', $elm ) ;
    push( @list, { %tmp } ) ;
}


print "_/_/_/ TEST 1 _/_/_/\n\n" ;
print "\$list {\n" ;
for ( my $ci=0; $ci <= $#list; $ci++ ) {
    print "  [$ci] {\n" ;
    for my $key ( keys %{ $list[$ci] } ) {
        print "    $key => '$list[$ci]{$key}'\n";
    }
    print "  }\n" ;
}
print "}\n\n" ;


print "_/_/_/ TEST 2 _/_/_/\n\n" ;
print "\$list {\n" ;
for my $ci (0..$#list) {
    &prtUnit( \@list, $ci ) ;
}
print "}\n\n" ;


# _/_/_/ subroutine _/_/_/
sub prtUnit
{
    my  $refList = shift ;
    my  $ci = shift ;
    
    print "  [$ci] {\n" ;
    for my $key ( keys %{ $refList->[$ci] } ) {
        print "    $key => '$refList->[$ci]{$key}'\n";
#       print "    $key => '$$refList[$ci]{$key}'\n";   # same as above
    }
    print "  }\n" ;

}   # end of prtUnit2

__END__

2006/05/22

【ココログ】ページ内目次:記事の編集画面へのリンクを修正

前回、ページ内目次を表示するJavaScriptに記事の編集画面へのリンクをつけましたが、いつのまにか、そのリンクをクリックしても編集画面に飛ばなくなってしまっていました。

どうやら原因は、記事IDの頭に0がついていたこと。
トップページや月別/カテゴリアーカイブ等で記事IDを得るために参照しているマーカで、記事IDの桁を揃えるため、頭が0埋めされている(記事ID11874061だとa0011874061になっている)のですが、編集画面へのリンクでこれをそのまま使ってしまうと、正常に動かない(動かなくなってしまった?)ようです。

とりあえず、スクリプト側は修正しました。
元記事の方で作られるブックマークレットを使っている場合はそのまま動作します。もしスクリプト(articleListLTT.js)をダウンロードして使用している方がおられましたら、ダウンロードしなおして下さい。

でも、最初にこの機能を付けたときは、別に問題無く(記事ID頭に0がついていても)飛べたはずなんですが。
それに、記事IDが違うと(自分のブログには存在しないIDだと)今まではエラー画面が表示されていたはずが、なんにも表示されずにダンマリのままというのは……どうも、ココログ管理ページの挙動が変わっている……のかも?

もしかして負荷対策だったり?エラー画面を出したりするとトラフィックが増えるからとかって……

2006/05/21

【Web】蔵書リンクMAKER:AmazonのURL体系変更に伴うブックマークレットと右クリックメニュー拡張更新

AmazonのURL体系が変わったのに伴って、『蔵書リンクMAKER』のブックマークレットとWinXP+IE6の右クリック拡張メニューの一部(Amazon個別商品ページ対応部分)が正常に動かなくなっていたので、こっそり修正。

観測気球』さんの記事で情報を知り、行って確認してみたら確かにURLが変わっていて(リダイレクトされている模様)、BMLとかがちゃんと動かなくなってました。

(旧) http://www.amazon.co.jp/exec/obidos/ASIN/(個別商品のASIN)/...
(新) http://www.amazon.co.jp/gp/product/(個別商品のASIN)/...
ただし、新URL体系は『本、洋書、CD、DVD、ビデオ、ソフトウェア、ゲーム、スポーツストア』に関してだけで、『キッチン、エレクトロニクス、おもちゃ』は旧のままのようです。
蔵書リンクMAKERは自分的に和書(とCD)のみ対応だし、まぁいいか

私は普段、まさに文字どおり蔵書のISBNを手打ちしたものから蔵書リンクを作成しているので、Amazonの個別商品リンクから利用することは滅多に無く、tsupoさんの記事が無ければしばらく気がつかないところでした。

【ココログ】トラックバック送信用記事の作り方

ココログの記事に貼付けて使う、トラックバック送信ツールを作ってみました。

JavaScript必須。ブラウザは Sleipnir 2.30(IE6)、Firefox 1.5.0.3 のみ動作確認(保証ナシ)。

ココログでトラックバックを送信する場合、『記事の作成』画面にある『相手先のトラックバックURL』欄を利用しますが、どうもこれは使い勝手がイマイチです。
記事の保存後にも欄内に残ってしまった(『以前に送ったトラックバックを確認』画面に移らなかった)URLは、送信失敗なのかな、と保存し直して見ると、実は前回のも送信されていて、重複トラックバックになってしまったり。
そうかと思えば、何回やり直しても送られなかったり。
せめて、正常に送信されたかどうかのメッセージくらいは出して欲しいところです。

そんなわけで、KOROPPYさんに教えていただいたBlogPeopleのぶろっぐぴんぴんを使おうと、ユーザ登録まで済ませたのですが。

たまたま、『under the sign of saturn』というサイトで「外部トラックバック続報 投げ銭」という記事を見つけ、どうやらHTML(フォーム)+JavaScriptで簡単なトラックバック送信ツールなら作れそう……ということが判ったので、トライしてみることにしました。


設置方法
  1. ここをクリックしてフォーム用ファイル(ZIPファイル)をダウンロードし、ローカルで解凍する。
  2. tbform.htmlの方をUTF-8が編集可能なテキストエディタ(Windows XPならメモ帳でも可)で開き、最初のほう(5行目)、
    tbsendHtml : "/script/tbsend.html" // path of 'tbsend.html'
    の赤字部分を、自分のブログに合わせて修正する(ドメイン部を除いたパス名を指定する)。
    例えば、ブログが http://hogehoge.cocolog-nifty.com/blog/ で、ここにファイルをアップロードする場合は、
    tbsendHtml : "/blog/tbsend.html" // path of 'tbsend.html'
    のようになる。
  3. ココログのファイルマネージャにて、tbform.htmlとtbsend.htmlの2つのファイルを、2.で修正した内容に合わせて(例では/ホーム/blog/に)、アップロードする。
  4. 適当な名前(例:トラックバック送信フォーム)で新規に記事を作成し、本文欄に、
    <!--#include virtual="/blog/tbform.html" -->
    とだけ書いて、保存する(赤字部分は2.に合わせて適宜変更すること)。
    (タグの埋めこみとなるため、必ずプレーンテキストモードで編集すること。)

設置手順としては、これだけです。

【2006.05.21】
設置手順を間違えていたのを修正(記事に貼付ける部分で、tbsend.html となっていたのは、tbform.htmlの間違いでした)

後は、作成した記事をブラウザで表示し、フォームの各項目を入力(最低限、送信先トラックバックURLと送信元記事URLは必須)した後、[送信]ボタンを押すことでトラックバックが送信されます。
送信完了すれば、ステータス欄に送信結果が表示されます。
ココログの場合、<error>0</error> のようにerrorタグ内が0なら送信は正常に完了しているはずです(これ以外の場合は、エラーメッセージが合わせて表示される場合もあります)。

トラックバックPingに対して相手側が送り返して来たXMLファイルがそのまま表示されます。イマイチ不格好ですが、JavaScriptではドメインが異なる場合は加工はおろか参照も出来ないので、これ以上の策はちょっと思いつきませんでした。

ちなみに、送信先が無応答で一定時間経つとタイムアウトします。これ、デフォルトは60秒にしてあるのですが……相手側もココログの場合は、混雑していると送信に1分以上かかる場合もざら(_ _;)/。
なお、タイムアウトしても[送信]ボタンが再度有効になるだけで、そのまま何もしないでおけば動作は継続されています(なので、忘れた頃に結果が返ってくる場合もあります)。

【2006.05.21】
デフォルトではタイムアウト無しにして、何らかの応答(ページの変化)があるまで[送信]ボタンを押せないように修正(tbform_v002.zipから)。
重複トラックバックをなるべく避けたいためにこうしてみたんですが。
でも数分待ったあげくProxy Errorとかになると怒り心頭(_ _;)/。
その上、Proxy Errorになってもちゃんと送信完了している場合もあり……。
やっぱりこれは、ココログの根本的なシステムの問題だなぁ……なんとかして下さいよ、本当に。

おまけとして、[記事を選択]プルダウンメニューで最近の記事が選択できます(RSS(index.rdf)から取得しているため、通常はトップページに表示されている記事分だけとなります)。
また、[記事URL]欄に自分のブログ(同一ドメイン内に限る)の記事のURLを手入力またはコピペしてから[情報取得]ボタンを押すと、記事タイトルと記事概要を取得し(ようと試み)ます。

自分のブログを訪れた人に使われてしまうのが嫌な場合、記事を一時的に公開してURLを取得し、自分用にブックマークを作ってから、下書きの状態に戻しておくと良いでしょう。

フォームのサンプルは(↓)続きの画面を参照。

※サンプルのため、送信ボタンは(一応)無効化してあります。悪しからず。

続きを読む "【ココログ】トラックバック送信用記事の作り方" »

2006/05/20

恒例の積読メモぺたぺた

ちょっと油断するといつの間にか溜まってしまっているので、こまったものです。

いや、買わなきゃいいんでしょうが……『シャイアラ姐さん、それはボクに呼吸をするなと言っているんですか?』(by ブック)

そりゃないぜBABY (第1巻)
立野 真琴 
そりゃないぜBABY (第1巻)
発行:白泉社 
定価:¥ 680
ISBN:4592887417
発行日:2006/05
【読了】
実は通常サイズのコミックスをリアルタイムで全巻買ってあって読了済。でも実家を家捜ししないと見付からないし、立野さんの作品では最も好きなもののひとつで、久々に読みたくなったため、衝動買い。
アリスから魔法 1 (1)
松本 夏実 
アリスから魔法 1 (1)
発行:集英社 
定価:¥ 410
ISBN:408856684X
発行日:2006/05/15
【読了】
聖ドラは中華風(?)でしたが、今作は英国風(??)だそうで……そういえば、タロットの本場って、どこなんでしょう?
そういえば、この人の作品は聖ドラ系しか読んだことが無かった……
ないしょのラッキー・ドール
天原 ふおん 
ないしょのラッキー・ドール
発行:白泉社 
定価:¥ 410
ISBN:4592188411
発行日:2006/05/19
ファンタジー系漫画家の中では最も好きな作家の一人。独特の世界観が楽しいのですが、今巻はどうかな?
フルーツバスケット 20 (20)
発行:白泉社 
定価:¥ 410
ISBN:4592184009
発行日:2006/05/19
祝20巻!パチパチパチ。本紙連載の方もいよいよクライマックスが見えて来た感じですが、表紙のネタが尽きるまでに終われるのか?(笑)
あ、そうそう、表紙は真知です。
一瞬、透君とまちがえてしまった、というのはここだけの秘密ですよ?……あ、シャレでもないのですよ?
親指からロマンス 6 (6)
椿 いづみ 
親指からロマンス 6 (6)
発行:白泉社 
定価:¥ 410
ISBN:4592172701
発行日:2006/05/19
世にも珍しいマッサージ漫画。連載開始時、私的には面白いけど、一般にはどうか?と懸念しましたが……でも6巻まで続いているってことは人気が有るのですね。
(文字どおりの)こり性の私は、ツボーズが見えるマッサージが得意な知り合いが切に欲しいです……。
パタリロ 79 (79)
魔夜 峰央 
パタリロ 79 (79)
発行:白泉社 
定価:¥ 410
ISBN:4592181794
発行日:2006/05/19
【読了】
不滅のギャグ漫画。地道に巻数を重ねて、80巻目前。少女漫画(!)としては多分最長、か?
エトランジュ、って久しぶりに見た気がする
紳士同盟クロス 4 (4)
種村 有菜 
紳士同盟クロス 4 (4)
発行:集英社 
定価:¥ 410
ISBN:4088566815
発行日:2006/05/15
【読了】
役者も揃い、ようやくメイン・ストーリも進展し始めた、という感じですかね?
女王様の犬 11 (11)
竹内 未来 
女王様の犬 11 (11)
発行:秋田書店 
定価:¥ 410
ISBN:4253192483
発行日:2006/05/16
【読了】
買うのがちょい恥ずかしいタイトル(笑)のコミックスもこれが最終巻。収まるべきところに収まった感じ。
どうも中途半端な気がする柘榴のその後が気になったり。
天音の『真名』も知りたい(笑)
からくりサーカス 42 (42)
藤田 和日郎 
からくりサーカス 42 (42)
発行:小学館 
定価:¥ 410
ISBN:4091203795
発行日:2006/05/18
さすがに最初のころのストーリを忘れてしまっています。連載終了したらまた頭から読み返したいと思わせる漫画。
『うしおととら』も読み返してみたいなぁ
犬夜叉 45 (45)
高橋 留美子 
犬夜叉 45 (45)
発行:小学館 
定価:¥ 410
ISBN:4091203507
発行日:2006/05/18
ちょっと惰性気味。まだ続くんかなー。
30婚miso・com 1 (1)
米沢 りか 
30婚miso・com 1 (1)
発行:講談社 
定価:¥ 410
ISBN:4063405923
発行日:2006/05/12
米沢さんのコミックスって久しぶり?……いや、『ねこらぶ』があったはずだけど、登録もれか。
この人の描くキャラにはやたらパワーがあるので好きです。
ちょっと口を目一杯開けた絵が多すぎな嫌いはあるけど
ラブ・ぽっ! 1 (1)
森見 明日 
ラブ・ぽっ! 1 (1)
発行:少年画報社 
定価:¥ 560
ISBN:4785926406
発行日:2006/05/10
【読了】
定番のラブコメっぽい……けど……うーん、何か私的にはイマイチ。
主役二人のキャラがどっちも好みじゃない、というか
少女生理学
新井 葉月 
少女生理学
発行:双葉社 
定価:¥ 630
ISBN:4575830275
発行日:2004/11/12
【読了】
この間2巻の方を買って、確か1巻は持っていたと思ったのだけれど、見付からないし読んだ覚えがないので改めて購入。
それにしても、普段から関西弁に囲まれているのに、漫画の中で関西弁を見かけると妙に新鮮な感じがする……なぜ?
耳で聴くのと目で見るのでは印象が異なるから?確かに目で見るのは圧倒的に標準語が多いよな……
恋愛ジャンキー 19 (19)
葉月 京 
恋愛ジャンキー 19 (19)
発行:秋田書店 
定価:¥ 540
ISBN:425314859X
発行日:2006/05/18
【読了】
ま、定番で。姿子さんの登場場面が多いので私的に満足。
36℃のキセキ
前田 とも 
36℃のキセキ
発行:角川書店 
定価:¥ 546
ISBN:4048539523
発行日:2006/04/28
私はすごい怖がりなので、ホラー小説・漫画・映画とかは基本的に見られません。でもなぜかオカルティック・コメディな漫画は割と好き……なので、それっぽい表紙だったので試し買い。
レンズのむこう
日坂 水柯 
レンズのむこう
発行:白泉社 
定価:¥ 680
ISBN:4592142691
発行日:2006/04/28
【読了】
帯のコピーが『メガネの女の子は好きですか?』……すみません、好きです。
知人から、眼鏡好きには本人も眼鏡をかけているケースが多い、という説を聞き、なるほど、と思うところも……
甘い生活 30 (30)
弓月 光 
甘い生活 30 (30)
発行:集英社 
定価:¥ 530
ISBN:4088770862
発行日:2006/05/19
長いな、これも……人気有るんですかねぇ。どうせ今巻も主役二人の中は進展しないんだろうなー(というか進展=クライマックス間近ってことだろうし)。
ジャジャ 7 (7)
えの あきら 
ジャジャ 7 (7)
発行:小学館 
定価:¥ 560
ISBN:4091570496
発行日:2006/05/19
【読了】
相変わらずバイク乗りにしか通じそうにもない蘊蓄満載ですが……バイク乗りじゃない私でも面白いのは何故?
この巻だと、コレクション38「タンデム・ツーリング」のゲスト・吉村さんがいいな。こういうお姉さん好き。普段は(周りが周りなので)あまり目立たないミヤギの単車バカっぷりも、一般人のお姉さんといると強調されて面白い。
メルカノ。 1 (1)
大島 永遠 
メルカノ。 1 (1)
発行:小学館 
定価:¥ 560
ISBN:4091570488
発行日:2006/05/19
定番……というか作者買い。
voiceful
ナヲコ 
voiceful
発行:一迅社 
定価:¥ 900
ISBN:4758070067
発行日:2006/05/18
なんとなく表紙に惹かれて購入。
ぽこぽこコーヒー気分 1 (1)
笹野 ちはる 
ぽこぽこコーヒー気分 1 (1)
発行:双葉社 
定価:¥ 650
ISBN:4575940119
発行日:2006/05/12
【読了】
主要登場人物は喫茶店『たんぽぽ』の店長・彩とウェイトレス・智子の二人だけですが(お客は別にして)、かけあいが面白い。
ニニンがシノブ伝 (4)
古賀 亮一 
ニニンがシノブ伝 (4)
発行:メディアワークス 
定価:¥ 714
ISBN:484023468X
発行日:2006/05/10
【読了】
これが最終巻ということで、案外と早い終幕のような……と思いましたが、五年半も連載していたのですね。8ページ連載だとそんなものか。
音速丸って……そういえば鷹だったな……

2006/05/19

ユリウス・カエサル ルビコン以前

今さらながら、ユリウス・カエサルに関しては、あれ程の有名人であるにも関らず、恥ずかしいほどに何の知識もないことに気がつきました。
シェークスピアの悲劇『ジュリアス・シーザー』の「ブルータス、お前もか」の有名な台詞は後世の創作で実際は言っていないと言われているとか、グレゴリオ暦になるまで使われていたユリウス暦を制定、ついでに七月を自分の名前にちなんで改称したりとか、実にそれくらいしか知らず……実はどの時代のどこの人でどういう業績があるのか、といった基本的知識がまるっきり抜けています。

そんな予備知識ほぼゼロ状態で読み進めているのがこれ。

ユリウス・カエサル ルビコン以前(上)ローマ人の物語8
発行:新潮社 
定価:¥ 420
ISBN:4101181586
発行日:2004/08/30
ルビコン以前3巻・以後3巻の計6巻のうち、ようやく1巻目を読み終えました。
この『ルビコン以前[上]』は、カエサルが三十九歳になるまでの、言わば『雌伏の時期』について綴られたもので、時代的には前巻にあたる『勝者の混迷』と重複していますが、今巻では、あくまで当時は『脇役』であったカエサルの側面から描いているため、同一の出来事でも違った側面が楽しめます。

それにしても、青年期までのカエサルは、業績的にはどうも今ひとつぱっとしません。
幸運の持ち主・借金大王・プレイボーイ、という程度の印象。偉人伝を書こうとしたら、真っ先にはしょられそうな時代です。
逆に物語を書く分には、いろいろと想像力を刺激される前半生、かも。この部分にスポットを当てた(青年期カエサルを主人公とした)小説とか、出ていないのですかね。
『栴檀は双葉より芳し』とはよく言われますが、大器晩成型の人の場合、成木になってはじめて、ああそういえば小さい頃から……と振替えられるもの、なのでしょうか。
成木になる前に枯れてしまわないためには、やはり運という要素も重要なのだろうなと思ったり。

続きを読む "ユリウス・カエサル ルビコン以前" »

2006/05/18

QRコード覚書

QRコードなるもの、私は前世紀のPHSを未だに使っているのであまり意識してはいなかったのですが、気をつけて見てみると結構あちこちで使われているようですね。
ブログに貼り付けてあったりもしますし……PCの画面上のものって携帯のカメラでは読み取りにくい気もするのですが問題無いのでしょうか。

中には、記事がQRコードで書かれたブログ(『QRコードBlog』)なんてものも存在するようなので、今浦島な自分が知らないうちに、メジャーになってきてるんでしょうね。

ところで、ブログに貼り付けてあったりするQRコードは画像データなので、当然PCで読み取れる(デコードできる)はず、と思って、そういうのを探してみたんですが、デコーダは意外な程にありませんね。エンコーダは沢山あるのですけれど。

まぁ、技術(ロジック)的にはデコーダの方が遥かに難易度が高いと思われるので、そんなものかも知れませんが

QRコード関連のメモ及びリンク集としては、『QRコードメモ:ソースコード開発など』が使いやすそう。

オープンソースのデコードライブラリ(Javaクラスライブラリ)『sourceforge.jp : qrcode (yanbe) 』や、デコードサービス『QRコードリーダー』なんかが紹介されています。

後者は、QRコード画像ファイルを添付したメールを送れば、解読した内容を折返しメールしてくれる、というもの。PCはもちろん、QRコード非対応の携帯でも(カメラ&メーラ&ブラウザがあれば)使えるみたい。

よりによって台風ですか

梅雨入りにはまだ早い、とか言っていたら、台風ですか。

その影響で、狙ったかのように今週末は雨の模様。予定していた山歩きも中止となりそうな雰囲気です。
ちなみに、行こうとしていたのは四国(愛媛県)の石鎚山。
今回で4・5回目の計画なんですが、なぜかいつも何らかの形で中止になってしまっています。我々はよっぽど石鎚山と相性が悪いのでしょうか(苦笑)。

そう言えば私は日本の四大島のうち四国だけ何故か行ったことがない……何度か機会はあったはずなんですが。

2006/05/17

なんか梅雨みたい

ここのところよく雨が降っていますが、まだ梅雨入りには早いですよねぇ(苦笑)。

今週末は久しぶり(実に約1年半ぶり)に山歩きの予定があるので、なんとかお天気の方も回復して欲しいところです。

その前にまずは体調を回復しなきゃという説もありますが(^^;

2006/05/16

【Excel】指定範囲のセル中の文字列頭にインデント(半角'>')を付ける

お仕事関連の覚書。

Excelで、

parent54 years old
というようなセルと
child28 years old
>grandchild4 years old
というようなセルを一緒にして
[A]
parent54 years old
child28 years old
>grandchild4 years old
としたあと、"child"と"grandchild"のインデントをひとつ深くして、
[B]
parent54 years old
>child28 years old
>>grandchild4 years old
のようにする作業が大量に発生。
ちなみに上表のセルの中身は適当。実際はもっと複雑です

とても手作業でいちいち'>'を打ってられません。
また、Excelの標準の検索・置換機能は貧弱なので、一括置換も難しそう……。
一旦csvに落としてエディタで変換というのも考えましたが、そうするとセルの属性(色など)までクリアされてしまいます。
テキストだけコピーして変換後ペーストする、というのも面倒だし……。
そんなわけで、初めて(!)Excelのマクロ機能なるものを使ってみようと思い立ちました。

とりあえずキーボードマクロ(ツール(T)→マクロ(M)→新しいマクロの記録(R))を試すも……どうも使い勝手が悪すぎるので、やむを得ずVBAなるものを使って(ツール(T)→マクロ(M)→マクロ(M)→(マクロ名を入れて)編集(E))簡単なコードを組んでみることにしました。

出来たのはこんな感じ(↓)。
Sub インデント挿入()
' Keyboard Shortcut: Ctrl+i
    For Each tmpCell In Selection.Columns(1).Cells
        If tmpCell.Formula <> "" Then
            tmpCell.Formula = ">" + tmpCell.Formula
        End If
    Next
'   If Selection.Cells.Count = 1 Then ActiveCell.Offset(1, 0).Select
End Sub

Sub インデント削除()
' Keyboard Shortcut: Ctrl+Shift+I
    Set SrchReg = CreateObject("VBScript.RegExp")
    With SrchReg
        For Each tmpCell In Selection.Columns(1).Cells
            .Pattern = "^>"
            tmpCell.Formula = .Replace(tmpCell.Formula, "")
        Next
    End With
'   If Selection.Cells.Count = 1 Then ActiveCell.Offset(1, 0).Select
    Set SrchReg = Nothing
End Sub
ショートカットキーを適当に登録しておいて(挿入: Ctrl+i、削除: Ctrl+Shift+i)、セルを範囲選択した後でそのキーを入力することで、インデントの挿入([A]→[B])・削除([B]→[A])が可能となりました。
VB系は初めてなので全く手探り。これが一般的な作りなのかどうかもわかりません。

【ココログ】ページ内目次:記事の編集画面へのリンクを追加

ココログのページ内目次を作るJavaScriptをマイナーチェンジして、記事の編集画面へのリンクを追加してみました。

自分のブログを見ていると、ときどき記事の内容を変更したくなるときがあります。
でも、ココログの管理画面だと、編集したい記事をURL(固定リンク)で指定する手段が用意されていないため、まず記事の作成(編集)画面を呼出して、記事のタイトルで検索をかけたり、記事のHTMLソースからIDを探し出して指定したり……といった方法を取らねばならず、ちょっと面倒です。

ちなみにIDを探すときには私はfacetさんの『[f-] 隠れているアンカーをリンク化して表示』を使用しています。

「今見ている記事の編集画面を直接呼び出せればいいのに……」
と思ったので、最近作ったページ内目次表示用のJavaScriptをちょこっといじって実現してみました。

誰でも一度は不便に感じそうなので、同様の機能はとうの昔にどなたかが作られていると思いますが、探すのが面倒だったので(ヲ
その後、調べてみると……やっぱりいろんな方がとっくに作られてますね(『ココログ過去記事編集用bookmarkletその2』とか)

JavaScript ONの状態で、↓のフォームに自分のブログIDを入れてコースを選択し、[作成]ボタンを押して下さい。
『(ここに作成されます)』がリンクに変わりますので、これをブックマークレットとして登録して下さい。

ブログIDは、ココログの記事の作成画面等を開いたとき、ブラウザのアドレス(URL)欄に表示されるblog_id=xxxxxのxxxxx(数字)部分です。

自分のブログにて、ブックマークレットを実行し、目次の記事タイトルの頭につく■印がリンクになっていれば、それをクリックしてみてください。記事の編集画面が開くと思います(当然ながらココログへのログイン処理は必要です)。

当方はプロコースを使用しているため、他のコースについては未確認です。他コースの方のレポート歓迎します。
表示されているページから記事IDを検出出来なかった場合には使用できません(■がリンクになりません)。悪しからず。


【2006/05/18】
[ID:xxx]をクリックしてページ内で移動した後で編集しようとするとページ先頭に戻らないといけないのが面倒だったので、各記事タイトルの前にも[編集]リンクが付くようにしてみました。


ブログID
ココログ ベーシック/プラス/プロ  フリー
BMLタイプ 標準  LTT風味
(ここに作成されます)
  • ブラウザ毎の登録方法(例)
    IE 6.0x リンクを右クリック→『お気に入りに追加(F)』
    Firefox 1.5x リンクを右クリック→『このリンクをブックマーク(L)』
    Sleipnir 2.3x リンクを右クリック→『ショートカットのコピー(T)』→'Ctrl+D'(『お気に入り(A)』
    →『お気に入りに追加(A)』)→『場所(L)』で'Ctrl+V'してコピーしたショートカットを貼付
    →『タイトル(T)』に適当な(解りやすい)名前を入力

山と積まれた蔵書

今朝、電車の中でいつものように本を読もうとして……背広のポケットに文庫が無いことに気がつきました。
そういえば、金曜に読み終えた本を出してから、別の本を入れた覚えが有りません……ああ、時間がもったいない。

確か、読みかけていたのは塩野 七生さんの『ローマ人の物語8』だったはずですが……。
そういえば、こないだクリーニングに出したときにポケットから出してそのまま……うーん、どこに置いたっけ?

……そのまま延々と探しつづけること30分。
なんとか見付かりはしましたが……整理しないといけませんねぇ。

もっとも、13有る本棚は既にほぼ満杯で、さらに床に山と積まれている状態なので、整理するにしてもなかなか難しいのです。
ああ、PCの画面でクリックしたら、その本がうちのどこにあるのか光って場所を教えてくれるような仕組みが出来ないかなぁ……などと妄想して、現実から目を逸らすのでありました。

2006/05/15

平安って古代ですよね?

なんとなく、清少納言が古代人、とか言われると違和感があったりもしますけど。

古文は大の苦手でしたが、平安時代(というか、それっぽい雰囲気)にはなぜか割と好感があったりもします。
氷室冴子さんの影響かなぁ?『ざ・ちえんじ―新釈とりかえばや物語』とか『なんて素敵にジャパネスク』シリーズは学生時代に全巻揃えましたしねぇ。
比較的最近だと、藤丞めぐるさんの『緋桜白拍子』なんかも好きです。

古文で思い出すのは、大学入試。試験前日の現実逃避で大和 和紀さんの『あさきゆめみし―源氏物語』を5、6巻くらいまで読破していったところ、当日『源氏物語』が出たので「ラッキー!」……とか思って、よく見たら宇治十帖だったという落ちが。当然、古文の結果はぼろぼろ(苦笑)

前置きの方が長くなりそうですが、そんなこんなで平安好き(ただし知識ナシ)な私が、最近おっと思ったのが、

消え去りし楽園―ダブルクロス・リプレイ・ヴァリアント
矢野 俊策, 稲葉 義明, F.E.A.R., しの とうこ 
消え去りし楽園―ダブルクロス・リプレイ・ヴァリアント
発行:富士見書房 
定価:¥ 651
ISBN:482914467X
発行日:2006/02
これ。

この中の『京城月影抄』の方、平安時代を舞台にしたRPGリプレイってあんまり無かったような気がするので(現代京都を舞台に鬼や陰陽師が出てくるようなのはありますが)、結構新鮮でした。嵯峨童子の設定がいささかぶっとび過ぎている気が最初はしましたが……妙になじんでくるのも面白いです。
これだけで終わるのは非常にもったいない気がするので、是非続編をお願いしたいところ。

もう一本の方はMMORPGの世界に入って出られなくなってしまった『プリズナー』達が主人公の話。
MMORPGは実際にはやったことはありませんが、劇中劇のゲーム版といった感じでこちらも割と楽しめました(ちょっと某漫画のグリ○ドアイランドを連想しましたが)。
シリーズ化して、現実に帰還するパーティが出るまで続けて欲しい気もします。

2006/05/14

blog_ajax_json_search.jsにパッチ:コメントも含めて検索

なおゆきさん(サイト『暴想』)作の全文検索スクリプトは、記事本文の全文検索が出来るようになっていますが、コメントまで含めて検索が出来たらもっと便利そう……。と前々から思っていました。

で、考えてみたら、『ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript』の方であれば、テンプレートを変更するだけでいけそうだと思ったので試してみたところ、うまくいったみたいなのでメモ書きしておきます。

テンプレート(search_data.txt)を以下のように変更して保存・反映すれば、コメントも含めて検索出来るようになります。

<?xml version="1.0" encoding="utf8"?>
{
data:[
<MTEntries all="1">{
title:"<$MTEntryTitle remove_html="1" encode_js="1"$>"
,link:"<$MTEntryLink$>"
,body:"<$MTEntryBody remove_html="1" encode_js="1"$><$MTEntryMore remove_html="1" encode_js="1"$><MTComments>【<$MTCommentAuthor remove_html="1" encode_js="1"$>】<$MTCommentBody remove_html="1" encode_js="1"$></MTComments>"
},</MTEntries>
{title:"",link:"",body:""}
]
}

あと、JavaScriptの方で検索語のハイライトがコメント部でも効くようにパッチをあてました。
オリジナルの検索ボックス用HTMLの2行目を、

<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/blog_ajax_json_search.js"></script>
から
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/blog_ajax_json_search.js"></script>
に修正すれば、パッチ版を使用できます。
修正したスクリプトはこちら

ついでに、

  • ハイライト処理で表示が崩れることがあったのを修正(といってもcocolog_ajax_search.jsの処理をそのままコピーしただけ)
  • 検索語をなにも指定せずに検索したとき表示される記事の件数が実際の件数より1多かったのを修正
も実施しました。

暴想: 自分のココログを全文検索するJavaScript』(cocolog_ajax_search.js)の方でも同様のことが出来れば、フリーやベーシックなんかでも使えるんですけど……こちらはarchive.htmlから辿って、(月毎等の単位でひとつのHTMLにまとまった)バックナンバーを順次取得するようになっているのですが、バックナンバーの中にはコメントまでは含まれていないのですよねぇ。
個々の記事を地道に取得するようにすれば可能ですが……速度的に難点が。もっと上手い方法はないですかねぇ。

同様の理由でトラックバック一覧も、出来ないことはないけど速度的に厳しい

2006/05/13

宅配について

長期出張が多かったり、最近は近所で売っていないものを通販で購入したりして、なんだかんだで結構な頻度で宅配を利用していますが、ひとつ困るのが受け取り。
会社宛なんかの場合は誰かが受け取るからよいようなものですが、一人暮らしの自宅に届く場合には結構困りもの。
特に日付・時間指定が出来ないケースだと(通販では結構ある)、不在時に届けてもらった宅配の方には非常に申し訳ない思いをしてしまいます。また、配達確認のTEL連絡が来ても電話に出られない状況は結構有り、何度もかけなおしてもらったりこちらからかけ直したり……。

また、配達時間を指定できる場合でも、大体の時間帯でしか指定できない以上、ときには何時間も自宅待機していないといけないですし。自分で取りに取りにいくという方法もありますが、宅配業者の店舗はそれ程多くないし、24時間営業ではないので、これまたあまり実用的ではありません。
近くに店舗があって、代わりに預かってくれて、24時間営業していて……っていうサービスを展開してくれそうなところとなると、一番いいのはコンビニでしょうかね。

ま、全ての通販で時間指定が可能になって、かつ宅配業者が24時間営業してくれて、でもよいのですが(笑)……無理かな

預かってくれる場所としては他には駅というのも考えられますが(これは一部実際にあるかな)重いものだと自宅まで持ってくるのは大変なので、やはりコンビニがベスト。
大分前に、コンビニで預り&受け取りのサービスが試験運用中、とかいうニュースを見た気がするのですが、その後はどうなったのでしょうかねぇ。
料金とか置き場スペースの確保とか、いろいろ問題はあるでしょうけれど、意外と需要は多いのではないかと思いますので、なんとか早めに実現して欲しいものです。

Amazonあたりが宅配&コンビニと組んでプロジェクト推進してくれないかな~

静養中

結局飲み会もパスして、大人しく部屋で寝ていたり。
さすがに一日寝ているとお腹が少し空いて来たような気はするが……雨模様だし、風邪に当ると咳が酷くなるので、あまり外出したくないなぁ……どうしたものか。

普通の傘を会社に置き忘れているので、折り畳み傘しかないというのも面倒だし

2006/05/12

病み上がりかけ

今朝もまだ微熱は有りましたが、これ以上休むわけにもいかずに出社。
ただ、さすがに無理はきかず、早めに帰宅してしまいました。
明日は飲み会の予定があるんだけど……ちょっと無理、かなぁ……。

咳止め飲んでも止まらない咳のため、体力を奪われている模様。

2006/05/11

やっとましになってきた

今朝も熱が下がらなかったため、無理言ってもう一日休暇。夕方になってようやく微熱程度になってきました。

うー、ちょっとだけでも仕事を進めておかないとまずいのだけれど……

2006/05/10

調子が悪い……

昨夜は身体がだるくなってきたために早めに帰宅してなんと9時には就寝、そのおかげで今朝は早めに起きてPCのチェックをしていたわけですが。
作業中、どうもしんどくて集中出来ず中断して寝直し……再度起きて会社に向かったものの、電車の中でどうにも気分が悪くなったので、休む旨連絡を入れて帰宅。

やっぱり熱があったため、医者に行こうとしたが、こういうときに限って休診……。
しょうがなく、一日大人しく寝ていました。
気候が不順なせいもあってか、体調がイマイチなんで困ります。

だからといって、PCまで使用者の体調に合わせるこたぁないと思うが……

PCお亡くなり(泣)

昨日の朝調子が悪くなったPC、先程から復活を試みていましたが、BIOS画面さえ立ち上がらなくなってしまったのではどうしようもありません……完全にお亡くなりモードです。(泣)

新PCを買う余裕は無いしなぁ……どうしたものか……

プリンタサーバ&ファイルバックアップサーバが無いと困るので、やむを得ず当面はサブPCをこのお役目につかせようとセットアップ中……でもこいつもけして調子がよくは無いので(電源入れっぱなしにしていると、そのうち無反応になったりする……)早いうちに抜本的対策をうたねばなりません。

2006/05/09

いやな目覚まし……

今朝はいつもより一時間以上早く目が覚めました。

というのも、何か変な音が聞こえてきたからです
『ピッ……ピッ……ピッ……』
妙に断続的に聞こえます。
最初は寝ぼけ眼で目覚ましを止めたりしてましたが、鳴り止みません。

少しして、どうやら隣室から聞こえているらしい……と気づいたとき、嫌な予感がしました。
隣室には常時起動しているタワーPCが1台……。
どうやら、音源はこれのようです。

液晶ディスプレイの電源を入れて確認してみると……案の定、BIOS画面が起動したと思ったらすぐにリブート 、というのを繰り返していました。
ああ、また調子が悪くなったのか……(泣)。

多分、CPUのヒートシンクが浮いてしまっているのでしょう。とりあえず電源を落としてはきましたが……CPU自体は、熱でいかれてしまったかも……。

2006/05/08

本日購入分&多分登録漏れの未読(?)コミックス他

連休中に未読消化&蔵書整理に励もう、と連休前は計画していたのですが……予定は未定、ですねぇ。

BLEACH 22 (22)
久保 帯人 
BLEACH 22 (22)
発行:集英社 
定価:¥ 410
ISBN:4088740491
発行日:2006/05/02
【読了】
スティール・ボール・ラン 8 (8)
発行:集英社 
定価:¥ 410
ISBN:4088741196
発行日:2006/05/02
テニスの王子様 33 (33)
許斐 剛 
テニスの王子様 33 (33)
発行:集英社 
定価:¥ 410
ISBN:4088740483
発行日:2006/05/02
ふたりエッチ 31 (31)
克 亜樹 
ふたりエッチ 31 (31)
発行:白泉社 
定価:¥ 530
ISBN:4592138511
発行日:2006/04/28
【読了】
シスタートラップ
大橋 薫 
シスタートラップ
発行:竹書房 
定価:¥ 590
ISBN:4812464609
発行日:2006/04/27
【読了】
昔からの読者としては、大橋薫さんが少しエッチなコミックスを描かれているのを読むとき未だに妙な気恥ずかしさを覚えます(むかし、あとがきか何か(『週末は行方不明』だったかな?)で「嫁入り前でしかも本名でやっているのにそんなもの書けるか!」とかいう台詞を見た気も(笑)。まぁ、もうご結婚はされているわけですが)……そうかといって、買わずには済まされないし(^^;
よつばと! 5 (5)
あずま きよひこ 
よつばと! 5 (5)
発行:角川(メディアワークス) 
定価:¥ 630
ISBN:4840234418
発行日:2006/04/27
【読了】
ほしのふるまち 1 (1)
原 秀則 
ほしのふるまち 1 (1)
発行:小学館 
定価:¥ 530
ISBN:4091510795
発行日:2006/05/02
タイトルと裏表紙の文を見ただけですが、大学時代に『東京は星が見えないなぁ』という立看板を見て天文部に入ったことを懐かしく思い出したりしました。
いつも心に太陽新聞
師走 冬子 
いつも心に太陽新聞
発行:芳文社 
定価:¥ 600
ISBN:4832264613
発行日:2006/05/08
京都北山
北山研究会 
京都北山
発行:昭文社 
定価:¥ 840
ISBN:4398754466
発行日:2006/01
GWに山歩きに行くはずが、体調が悪くて行けなかった……

2006/05/07

GWオフ後の未読リスト追加分

オフ後で、両手と背中に荷物を抱えていながら(特に小型とはいえプリンタをさげていて、おまけに雨が降っているというのに)、やっぱり本屋には寄ってしまう私なのでした。

DEATH NOTE 11 (11)
大場 つぐみ, 小畑 健 
DEATH NOTE 11 (11)
発行:集英社 
定価:¥ 410
ISBN:4088740416
発行日:2006/05/02
【読了】
龍の花わずらい 2 (2)
草川 為 
龍の花わずらい 2 (2)
発行:白泉社 
定価:¥ 410
ISBN:4592183347
発行日:2006/05/02
【読了】
金色のコルダ 6 (6)
呉 由姫 
金色のコルダ 6 (6)
発行:白泉社 
定価:¥ 410
ISBN:4592180763
発行日:2006/05/02
天空聖龍 2―イノセント・ドラゴン (2)
発行:白泉社 
定価:¥ 410
ISBN:4592182391
発行日:2006/05/02
【読了】
7時間目ラプソディー
田中 メカ 
7時間目ラプソディー
発行:白泉社 
定価:¥ 410
ISBN:459218839X
発行日:2006/05/02
【読了】
暁男塾 14―青年よ、大死を抱け (14)
発行:集英社 
定価:¥ 530
ISBN:4088595726
発行日:2006/05/02
【読了】
ドロテア~魔女の鉄鎚~(2)
発行:富士見書房 
定価:¥ 609
ISBN:4047124516
発行日:2006/04/28

GWオフでも堕ちまくり

土曜日はパソコン通信時代からの知人達と恒例のGWオフでした。
相変わらず日本橋をひたすら歩き回るというオフのため、ひたすら疲れました(_ _;)/。

前回のオフでは大きな買い物(一眼レフのデジカメ)もしたことだし、今回は特に何かを買う予定も無く、お仲間が堕ちていくのを側から生暖かく見守る……つもり……だったのですが。
気がついたら、率先して堕ちまくっていました(爆)

堕ちる=誘惑に負けて衝動買いしてしまうこと

というわけで、その内容とは……。

EIZO(ナナオ)ScreenCleaner¥1,575.-
MITSUBISHIDVD-R 8X 20PACK¥1,750.-
タイムリーUSB2.0/1.1卓上用延長ケーブル GR-DT001UB¥300.-
PROTEKUSB AC アダプター PAC-1200BK¥980.-
LogitecPortable HD USB 2.0 5400rpm 120GB LHD-PBD120U2SV¥21,980.-
Canonインクタンク 4個 BCI-7e 4色 マルチパック¥3,290.-
EPSON小型プリンタ Colorio me: E-100¥4,800.-
JTL-LOASカメラケース¥100.-
SONYUSBケーブルA←→B 0.5m DLC-U5B/HI¥80.-
GeneonFate stay night 1¥6,499.-
GeneonFate stay night 2¥6,499.-
東芝EMI槇原敬之 LIFE IN DOWNTOWN¥3,058.-
てなところですかね。
……オフ中に買ったのは(ぼそっ)

2006/05/06

歴代のデジタルカメラ

4/23にコンパクトデジカメ(800IS)を新規購入し、これまで使用していたコンパクトデジカメ(FX5)を叔父に譲ることになったため、記念(?)に撮ってあった写真を、『マイフォト』の試用も兼ねてアップしてみました。

歴代のデジタルカメラ

購入順に、

  • Nikon COOLPIX5000 (2002/01)
  • Panasonic DMC-FX5 (2004/02)
  • KONICA MINOLTA α Sweet DIGITAL (2006/03)
  • Canon IXY DIGITAL 800IS (2006/04)
DMC-FX5は既に叔父に譲ってしまいました。ただし、なぜか専用ケースは手元に残ってます(笑)。
800ISの専用ケースはちょっとしょぼくて(ランドセルみたいなデザイン……)予備の電池も入れられないので、ケースだけはFX5の奴も併用しようかと(笑)

この他にも、人に譲ってしまってもはや手元にはありませんが、

  • OLYMPUS CAMEDIA C-820L (1997/08)
  • SONY Cyber-shot P32 (2003/08)
なんてのもありました(最後のは確か懸賞で当った奴)。
しっかし……見事に、メーカばらばら(笑)

2006/05/05

目には青葉

本館の方の光画室を更新。

一昨日は田舎のほうでお墓参りをしたのですが、気持ちのよい天気だったため、散策しながら帰りました。
その際、先日新たに購入したIXY DIGITAL 800ISの試し撮りも兼ねて、目に止まったものを撮影

新緑が目に眩しい季節……の筈ですが、一番目に鮮やかだったのは、季節はずれの紅葉でした(笑)。

Img_0118_thumb

2006/05/04

【ココログ】ページ内記事の目次を作るJavaScript(謎のおまけ付き)

ブログに設置するタイプの目次スクリプトもありますので、ご参照ください。
【ココログ】アーカイブページに目次とページングを付加するJavaScript
なお、2007年6月現在、この記事に集中してスパムコメントがつくようになってしまったため、勝手ながら、当面コメントは閲覧のみとさせていただきます。
お手数ですが、何かありましたら伝言板か、上記の記事の方にお願いします……って、そっちもスパムつくようになったらどうしようかなぁ(苦笑)。

ココログで、現在表示しているページの目次を作るJavaScriptを製作してみました。
自分のサイトのサイドバーなどに貼付けて閲覧者の便宜を図るほかに、下の方にあるブックマークレットを登録しておけば、自分でココログを使用している任意のサイトを見に行ったときに、そのページ内の目次(見出しリスト)を表示することが出来る……かも知れないです。

対応していないテンプレートも多いと思いますので、力弱く(笑)。

トップページに記事を沢山置いている場合や、カテゴリーやバックナンバーを開いた時には、記事がタイトルも内容も一緒に縦にずらっと並ぶため、読み辛い思いをします。
これを少しでも軽減しようと、記事のタイトルのみを抜き出しリスト化して表示するのが、本来の目的であり機能です。

とりあえず、左の『一覧表示』中の、「ページ内目次」の[標準表示]ボタンを押してみて下さい。
そうすると、本文の上に「ページ内目次」が追加されるかと思います。
ID部分がページ内のリンク、タイトル部分が個別記事へのリンクとなっています。
基本機能としては、たったこれだけです。

でも実は、同様の機能を持つスクリプトとしては既に、なおゆきさんの『タイトルと概要を表示するJavaScript』や、facetさんの『見出し一覧』といったすばらしいものが存在しています。
何を今更感はぬぐえません。

そして当然ながら、私が作ったものよりも高機能です(爆)

てなわけで、趣味に走ってしまいました(をい)。
今度は、左の『一覧表示』中の、「ページ内目次」の[LTT風味]ボタンを押してみて下さい。
  :
  :
  :
そんな感じです。

LTTが何の略か、わかる人だけわかって下さい(^^;

万一、設置したいという物好きな方は、メモ欄などのHTMLが記述できる場所に、

<script type="text/javascript" src="https://furyu.tea-nifty.com/script/articleListLTT.js"></script>
<form style="margin-bottom:8px">
<table><tbody style="vertical-align:top;color:#446688;font-weight:bold;font-size:12px;line-height:14px;">
<tr><td>ページ内目次</td></tr>
<tr><td>
<input type="button" onclick="javascript:showArticleList( false );" value="標準表示" />
<input type="button" onclick="javascript:showArticleList( true, true, true );" value="LTT風味" />
</td></tr>
</tbody></table>
</form>
のようなものを貼り付けて下さい。

また、
ページ内目次(標準)
ページ内目次(LTT風味)
をブックマークレットとして登録しておき、ココログを使用している他の人のブログを見に行ったときに実行すれば、そのサイトで表示しているページの目次を作ることも出来る……かも知れません(笑)。

  • ブラウザ毎の登録方法(例)
    IE 6.0x リンクを右クリック→『お気に入りに追加(F)』
    Firefox 1.5x リンクを右クリック→『このリンクをブックマーク(L)』
    Sleipnir 2.3x リンクを右クリック→『ショートカットのコピー(T)』→'Ctrl+D'(『お気に入り(A)』
    →『お気に入りに追加(A)』)→『場所(L)』で'Ctrl+V'してコピーしたショートカットを貼付
    →『タイトル(T)』に適当な(解りやすい)名前を入力

例によって、設置や改変その他、ご自由に。
連絡も不要ですが、コメントやアドバイス、関連記事からのトラックバックは歓迎します。


【2006/5/16】
記事の編集画面へのリンクを表示出来るように改修し、あわせてこれに対応するブックマークレット作成用フォームを用意しました。
【ココログ】ページ内目次:記事の編集画面へのリンクを追加

2006/05/03

帰省の終わり

とりあえず実家に居るのは本日までで、また一人暮らしの日々。 今更特に感慨は湧かないが、ただひとつ、入れ違いで実家に着いた姪っ子をかまえないのが、ちと寂しい、かも。

2006/05/02

ゆっくり寝ようと思ったら……

思い切り惰眠を貪るつもりが、雷と激しい雨の音で目が覚めてしまいました。

昨日の夏並みの暑さの影響なのでしょうか。でもこれで、涼しくなるのなら大歓迎です。

暑いのはダメ……(x_x)。

2006/05/01

ナローバンドな生活

本日から帰省で実家に戻ってきています。

ナローバンドな生活に逆戻り……ほんのひと月ちょっと前には出張のために日常だったはずが、もう堪えられなくなっています……お~そ~い~。
慣れって怖いですねぇ……

はに丸さんの曲をBGMに設置

ブログで音楽を流す方法』の、はに丸さんの曲「ペダル」「がっこうの唄」「星降る夜」をBGMとしてサイドバーに設置しました。

Music by はに丸http://utauouji.seesaa.net/
ブログで音楽を流す方法http://utauouji2.seesaa.net/

とても良い曲ばかりなので、是非一度聞いてみてください。

これを設置して気がつきましたが、リンク(同一ページ内で遷移するもの)をクリックすると音楽が止まってしまいますね(プレイヤが停止状態になる)。
それも、IE6を使用していて、Windows Media Playerのプラグインで再生される場合のみ(*.wma等)。
Quick Timeが入っていてそちらで再生されるMIDIとかMP3や、blog-tunesの場合はページを移動してもそのまま再生継続されるのに……。
そう思って、Firefoxで確認すると、wmaでも問題無し……なんじゃこりゃ(_ _;)/。

気がつけば皐月

また一つ月が代わり、早五月。2006年も1/3が終わったんですねぇ。

タイトルを書きつつ『ん?皐月だと陰暦五月か……』と思いましたが、まぁそのままに。
そういう視点で見てみると、『五月』が付く言葉って結構多いですけれど、ほとんどが陰暦の五月を指しているので、現代の感覚だと違和感のある言葉も多いですね。

以下、広辞苑第4版より、五月の付く言葉を並べてみると…… 『五月秋』、『五月女』、『五月革命(これはちと違うか)』、『五月冑(端午の節句のルーツ?)』、『五月蚊帳(これは新暦・旧暦どっちだろ?)』、『五月ささげ(ささげは豆丁・インゲン豆のこと)』、『五月人形』、『五月幟』、『五月病(これはもろ現代っぽい)』(ここまで『ごがつ』の項)、
『五月の鯉の吹流し(粋でしゃれっけのある言いまわしですね)』『五月雨(「さみだれ」は「さつきあめ」でもよいのですね)』『五月馬』『五月会』『五月女(田植をするひと。ごがつでもさつきでもよいのか)』『五月川』『五月躑躅(ツツジって漢字難しい)』『五月波・皐月波』『五月の節(せち)』『五月の珠』『五月の御精進(みそうじ)』『五月晴(本来は陰暦五月の梅雨の晴れ間ですが、今は新暦五月の晴れ渡った空の方を指しますね)』『五月飯』『五月山』『五月闇』 (ここまで『さつき』の項)

あーもー五月蝿いっ!っていうくらいに沢山有るもんですね(サゲ)。

そういえば、ついでに引いてみると、水無月は本来『みなつき』←『水の月』←『水を田に注ぎ入れる月』の意、らしいですね。『水無月』は当て字っていうことでしょうけど(いや、水を田に注ぎいれるから無くなるのか(笑))、特に新暦に当てはめると梅雨で、全くイメージが反対になってしまうというのも面白いものですね。

« 2006年4月 | トップページ | 2006年6月 »

戻るリンク追加

カレンダー

2025年5月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ココログカレンダーPlus(旧2)

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

コメントリストツリー化

無料ブログはココログ