nezu のすべての投稿

恒例と初体験

この週末は沖縄だった。
琉球の祭典というイベントの本番だったので。
三味線と三線のコラボレーション曲のアレンジをはじめ諸々で関わった。

ここ数年同じイベントで沖縄には来てるけど、いつもと比べて今年はずいぶん涼しかったなぁ。
今月のはじめに石垣島に行った友人も涼しかったって言ってたし、今年は秋が早いのかもしれない。
日曜日の本番と、月曜日の別の小さなイベントの本番ともに大きなトラブルなく終えることができて安堵の気持ちで火曜日東京戻り。

恒例の沖縄在住の友人との合流も果たせたし、他にもfacebookで沖縄滞在を報告したらたまたま同時期に沖縄に着てる友人とかもいて合流なんてことも。
facebookのパワーを感じる出来事。

それから今回の沖縄では初めて「出先で散髪」というのにチャレンジ。
ちょっとした空き時間に床屋さんに飛び込んでみた。
いつも行ってる自宅近所の床屋さんにここのところバタバタで行けてなくて髪が鬱陶しかったし。
いつもと若干違う髪型になった気がする。やけにさっぱり。

頭と言えば、月曜のステージの最後にやってた「豊年音頭」のフレーズが今でも頭の中でまだリフレイン中♪
恒例の行事ながら初体験のこともあった沖縄。まだ余韻の残る週半ばの朝。

MS Wordの描画キャンバスの使い勝手Hack その3

どっっっぷりIT系の話しアゲイン。

先日のMicrosoft Wordの描画キャンバスの話しその続編のさらに続きです。

英語のブログの方に『「左右に整列」と「上下に整列」もできるようにしてくれない?』っていうコメントと言うかリクエストが来たのでやってみた、って話。

マクロを追加しただけなのでやり方は以前の記事を参照して下さいませ。

変更点は以下のとおり。
・関数を追加(DistributeHorizontal,DistributeAlignVertical,SortHorizontal,SortAlignVertical)
・以前の関数内の変数の型を修正(AlignHorizontal,AlignVertical)

整列させたいモノはそんなに多くないという前提で、速さよりも簡潔さを重視したソートアルゴリズムにしています。

Private Sub AlignHorizontal(ARate As Single)
Dim Min, Max, i As Single
    Min = 32768
    Max = -32768
    For Each AShape In Selection.ChildShapeRange
        If Min > AShape.Left Then
            Min = AShape.Left
        End If
        i = AShape.Left + AShape.Width / 20
        If Max < i Then
            Max = i
        End If
    Next AShape
    For Each AShape In Selection.ChildShapeRange
        AShape.Left = Min * (1 - ARate) + Max * ARate - AShape.Width / 20 * ARate
    Next AShape
End Sub

Private Sub AlignVertical(ARate As Single)
Dim Min, Max, i As Single
    Min = 32768
    Max = -32768
    For Each AShape In Selection.ChildShapeRange
        If Min > AShape.Top Then
            Min = AShape.Top
        End If
        i = AShape.Top + AShape.Height / 20
        If Max < i Then
            Max = i
        End If
    Next AShape
    For Each AShape In Selection.ChildShapeRange
        AShape.Top = Min * (1 - ARate) + Max * ARate - AShape.Height / 20 * ARate
    Next AShape
End Sub

Private Sub AlignShape(AHorizontal As Boolean, ARate As Single)
    If Selection.ChildShapeRange.Count = 0 Then
        Exit Sub
    End If
    If AHorizontal Then
        AlignHorizontal (ARate)
    Else
        AlignVertical (ARate)
    End If
End Sub

Sub AlignHorizontalLeft()
    AlignShape True, 0
End Sub

Sub AlignHorizontalCenter()
    AlignShape True, 0.5
End Sub

Sub AlignHorizontalRight()
    AlignShape True, 1
End Sub

Sub AlignVerticalTop()
    AlignShape False, 0
End Sub

Sub AlignVerticalMiddle()
    AlignShape False, 0.5
End Sub

Sub AlignVerticalBottom()
    AlignShape False, 1
End Sub

Private Sub SortHorizontal(ByRef ACol As Collection)
Dim TmpCol    As Collection
Dim l_cls       As Object
Dim l_clsMin    As Object
Dim MinID As Integer
Dim i           As Integer
    Set TmpCol = New Collection
    Do Until (ACol.Count = 0)
        MinID = 1
        For i = 2 To ACol.Count
            If ACol(MinID).Left > ACol(i).Left Then
                MinID = i
            End If
        Next i
        TmpCol.Add ACol(MinID)
        ACol.Remove MinID
    Loop
    Set ACol = TmpCol
End Sub

Private Sub SortVertical(ByRef ACol As Collection)
Dim TmpCol    As Collection
Dim l_cls       As Object
Dim l_clsMin    As Object
Dim MinID As Integer
Dim i           As Integer
    Set TmpCol = New Collection
    Do Until (ACol.Count = 0)
        MinID = 1
        For i = 2 To ACol.Count
            If ACol(MinID).Top > ACol(i).Top Then
                MinID = i
            End If
        Next i
        TmpCol.Add ACol(MinID)
        ACol.Remove MinID
    Loop
    Set ACol = TmpCol
End Sub

Sub DistributeHorizontal()
Dim Min, Max, i, Total, Interval As Single
Dim ShapeCol As Collection
    If Selection.ChildShapeRange.Count > 1 Then
        Min = 32768
        Max = -32768
        Total = 0
        Set ShapeCol = New Collection
        For Each AShape In Selection.ChildShapeRange
            If Min > AShape.Left Then
                Min = AShape.Left
            End If
            i = AShape.Left + AShape.Width / 20
            If Max < i Then
                Max = i
            End If
            ShapeCol.Add AShape
            Total = Total + AShape.Width / 20
        Next AShape
        SortHorizontal ShapeCol
        Interval = (Max - Min - Total) / (ShapeCol.Count - 1)
        Total = ShapeCol(1).Left
        For Each AShape In ShapeCol
            AShape.Left = Total
            Total = Total + AShape.Width / 20 + Interval
        Next AShape
    End If
End Sub

Sub DistributeVertical()
Dim Min, Max, i, Total, Interval As Single
Dim ShapeCol As Collection
    If Selection.ChildShapeRange.Count > 1 Then
        Min = 32768
        Max = -32768
        Total = 0
        Set ShapeCol = New Collection
        For Each AShape In Selection.ChildShapeRange
            If Min > AShape.Top Then
                Min = AShape.Top
            End If
            i = AShape.Top + AShape.Height / 20
            If Max < i Then
                Max = i
            End If
            ShapeCol.Add AShape
            Total = Total + AShape.Height / 20
        Next AShape
        SortVertical ShapeCol
        Interval = (Max - Min - Total) / (ShapeCol.Count - 1)
        Total = ShapeCol(1).Top
        For Each AShape In ShapeCol
            AShape.Top = Total
            Total = Total + AShape.Height / 20 + Interval
        Next AShape
    End If
End Sub

追い込んで

先日生まれて初めて金だわしなるものを購入。
178円なーり。

それを使ってヤカンのこびりつきをゴシゴシ。絶大な威力に感心しきり♪
ほかにきれいにする鍋はないか、フライパンはないか、と次から次と。
塗装まで落ちちゃうものはさらっとしかできなかったけど、ヤカンと雪平鍋は相当新品に近くなった感じ☆

この前の冷凍庫の霜取りみたいにBefore & Afterを写真にとっておけばよかったなぁと後悔。
・・・というか、この前の霜取りを写真に取りながら、「これってUSTERAMで流したら何か起きるかな」ってのは考えてた。
掃除の生中継。

「ほらー、そこがまだ出来てないじゃん」みたいなツッコミを受けながらの作業ってやる側としてはどうなんだろう。。。
まぁ誰も見てないって展開になる可能性のほうが高いけど。

緊急度の低いToDoは自分を追い込まないとやっぱりなかなか手がつかないままになっちゃうので
「やります宣言」→「USTREAMで公開実行」
っていうのもいいかもな。有言実行の新しい形。

USTREAM配信環境確認してからこそっと実行します。(←一応宣言)

イケてない

今日は小さくイケてない。

仕事場にて。

「これ印刷したら出掛ける!」ってときにプリンターのインク切れ。
インクの詰め替えでインクがはねても大丈夫なように洗面所に入ろうと電気をつけたらパチっと電球切れ。
電球2つのうち1つは生きてたからなんとか詰め替えも印刷もできたけど。
あたふたと出かけましたとさ。

仕事場に戻る道すがら。

バスを待ってたら左の耳元に虫っぽい感覚。
払いのけたものの直後からかゆみが・・・
耳たぶを蚊に刺された~。
かゆいのかゆくないのって。。。かゆいの。
指の関節のとことがくるぶしとか刺されるとかゆいけど、張るぐらいかゆい。
でもって触ってみたら刺されてない右側より明らかに膨れてるし熱持ってるし。
鏡なんて持ってないから見えなかったけどきっと激しく赤かったに違いないし、片方だけ耳たぶ激しく赤いなんて誰も気づかないだろうけど万が一気づかれたら恥ずかしいなとか思ってたら自分がいたたまれなくなってくるし。。。

かゆみこそなくなったものの3時間近く経った今も左の耳たぶのほうがまだ腫れてるし熱持ってる。
もちろんまだ赤い。

今日の結論。
耳たぶを刺されるときには鏡を持ってたほうがいい。

気づいたり対処したり

大学によるけど今週・来週から後期(秋学期)が始まり、いわゆる夏休みも終了。
講義がない期間に行ったところ、やったことはまた改めてまとめるとして、今日は久々に大学へ行き事務所に戻るという流れで動いてみてふと気づいたこと。

  • 松屋(丼物屋さんの方)

以前は寸胴みたいな鍋に入ってたはずの味噌汁が、自動の味噌汁メーカーに変わってた。
ちなみに好物の豚丼は変わらずうまかった。

ケンタッキーだったように記憶をしてる場所が薬屋さんに変わってた。
オープンしたばかりらしく、花が飾ってあってキャンペーンのチラシみたいなの配ってたなぁ。

  • イチョウ並木

学校にも自宅近くにもイチョウ並木があるけど、早くも銀杏が落ち始めてる。
この臭いをかぐと秋だなぁって思う。
あの臭いの内側にこれまた好物の銀杏の可食部分があるのが不思議。

  • 冷凍庫

ふと気づいた、というか気づいて慌てたんだけど、事務所に戻ったら冷凍庫が半開き。
開けたら冷凍庫の中全体が霜。霜。霜。。。

スチームクリーナーとマイナスドライバーととんかちで緊急オペ。

まぁびっくりするくらいの氷が取れましたとさ。

  • ノートPC

緊急オペに専念してから机に戻ったらノートPCからなにやら異音が。。。
ファンに何かが引っかかるような音。
こちらも緊急オペ。
カバー外して分解してファンをばらしてからダストブロワーでお掃除。
終わってからしばらく使ってるけど異音はしなくなった模様。

いろんなものに気づいたり対処したり。
音楽の仕事も進んだし、盛りだくさんな一日。
そしてまだ作業は続く。。。