- 2010/03/21 Sun
-
のどの痛みと発熱がひかないので、「のどの痛み・発熱に」の銀のベンザブロックを買ってくる。
あと、イソジン。
それと桜えび。
いや、だからなんでこのタイミングで桜えびなんだ。
- 2010/03/20 Sat
-
一晩のうちに熱が上がって下がって。
でもまだ熱っぽくて。
なにか飲むものをとコンビニにでかけてウーロン茶を買ってきた。
あと、紅生姜。
なんで紅生姜。
- 2010/03/19 Fri
-
三連休を前にまた体調を崩してしまったので会社のホワイトボードの自分の欄に3/23 休
と書き殴ってオフィスの戸締りをして携帯の電源を切ってふらふら帰る。
- 2010/03/18 Thu
-
後頭神経痛は解消されたものの、半年くらい前に子会社の内輪モメに巻き込まれて引き取ったプロジェクトの仕様変更依頼がきてあたまいたい。
さぁ三日連続のお好み焼きを焼こう!と風呂上がりに流しの前に立った時点でタマゴを切らしていたことに気が付いて、帰り道になにか忘れているような気がしていたのはこれかぁぁぁ!?とひとしきりじたばた。
しかしそうすると夕飯はどうしよう、もう23時だしいいかーと思ったりもしてみたものの、結局着替えてタマゴだけ買ってくるのでした。
青海苔をかけすぎていただきます。
- 2010/03/17 Wed
- 10%くらいの精度しかなかったものをこの半日で90%くらいの精度までまで引き上げて、まさかこれだけ向上するとはーと自分以外に人のいないフロアでくねくねしてみたりしていましたが、そういえば昨年の今頃も2時間くらいかかっていた処理を一晩で数分で処理できるようにしてみたりとかしていたので改善というのは得てしてそういうものなのかもしれないな!と思ってみたりしたものの、どう考えてもそれは元がひどいだけだな。
- 2010/03/16 Tue
-
風邪は治ったものの引き続き頭が痛くてなんだえーと思っていたら、これあれですね。ここのところこぶさただったのですっかり忘れてましたけど、例によっての後頭神経痛じゃないのさ。
フロアが移転して自販機がなくなってしまってからコーヒーはもっぱらインスタントでしたが、なんとなく今日は缶コーヒーを。
つーか、なんとなくもなにも単に暑かったからだよ!
インスタントではホットで飲まざるを得ないので。
三寒四温とはいうけれど、そんなにころころと気温を変えられたら、また風邪をひいてしまいますですよ。
- 2010/03/15 Mon
-
頭痛が止まないのでとっとと帰ってひとっぷろ浴びて酒を一杯というか五、六杯ひっかけて布団にもぐってラジオをたれ流しながら貝ひもをかじりつつパフォーマンス調整とかそんな感じのことをだらだらと。
つーか、遅すぎるんだよ!バカ!
- 2010/03/14 Sun
-
熱は下がった気がする。
VBとC#の遅延バインディングの違いについてにゃんにゃん言っている人がいたので、Visual Basic .NET による Office オートメーション サーバーでのバインディング
http://support.microsoft.com/default.aspx?scid=kb;JA;304661Visual C# .NET で Office オートメーション サーバーをバインドする方法
http://support.microsoft.com/default.aspx?scid=kb;JA;302902
をぼけと眺めてみる。Visual Basic .NET では、IDispatch::GetIDsOfNames メソッドを使用して、そのオブジェクトでサポートされているメソッドおよびプロパティを確認し、IDispatch::Invoke メソッドを使用して、それらのメソッドやプロパティを呼び出すことができます。Visual C# では、IDispatch::GetIDsOfNames メソッドを使用して、そのオブジェクトでサポートされているメソッドおよびプロパティを確認し、IDispatch::Invoke メソッドを使用して、それらのメソッドやプロパティを呼び出すことができます。
書いてあることは変わらんなーと思いつつサンプルコードを見てみたら全然違ってて噴いた。
以下、サンプルコード抜粋。Visual Basic .NET 事前バインディングDim objApp As Excel.Application Dim objBooks As Excel.Workbooks objApp = New Excel.Application() objBooks = objApp.Workbooks
Visual Basic .NET 遅延バインディングDim objApp As Object Dim objBooks As Object objApp = CreateObject("Excel.Application") objBooks = objApp.WorkbooksVisual C# .NET 事前バインディングExcel.Application objApp; Excel.Workbooks objBooks; objApp = new Excel.Application(); objBooks = objApp.Workbooks;
Visual C# .NET 遅延バインディングobject objApp_Late; object objBooks_Late; Type objClassType; objClassType = Type.GetTypeFromProgID("Excel.Application"); objApp_Late = Activator.CreateInstance(objClassType); objBooks_Late = objApp_Late.GetType().InvokeMember( "Workbooks", BindingFlags.GetProperty, null, objApp_Late, null );
ああ、これは確かに面倒だ。
ただやっぱり、このような遅延バインディングには、事前バインディングでは避けられないバージョン依存関係を部分的に回避できるという利点があります。
が必要になる場面はあるわけで、さりとてただし、オートメーション コードの完全性をコンパイル時にチェックできなくなり、メソッドやプロパティの適切な呼び出しを支援する Intellisense 機能が提供されないという欠点もあります。
は嬉しくないわけで。
ままならない。
- 2010/03/13 Sat
-
少し大きめの皿が欲しいなと思っていたら
お気に入りの皿が真っ二つに割れたから
七月六日はサラダ記念日
※熱で朦朧としています 冷たいものが欲しいと冷凍庫からシャーベットというかシャーベット状の焼酎を取り出して飲んで余計に熱くなって寝る。ホッピー - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%9B%E3%83%83%E3%83%94%E3%83%BC一部ではジョッキに入れた焼酎をシャーベット状に凍らせる店もある。
- 2010/03/12 Fri
-
熱っぽいけどとりあえず出社して、とりあえずバファリンを投与。
Excel.Application.Run でVBマクロを叩いていたコードをVBマクロなんか使う必要ないよ!なんだよこれ!と削除したら、Excel.Workbook.Close が終了しなくなってしまったので調べる。
(環境)
Microsoft Visual C# 2008
Microsoft Excel 10.0 Object Library
・Excel.Application.DisplayAlerts を true にしたところ
クリップボードの警告ダイアログが表示された。
ダイアログを操作すれば Excel.Workbook.Close が通る。
・ダイアログは表示させたくないのでプログラムでクリップボードの警告メッセージを無効にする方法
http://support.microsoft.com/kb/287392/ja方法 2 : CutCopyMode を終了する
Visual Basic for Applications マクロを使用してセルの切り取りまたはコピーを行う場合、ブックを閉じる行の直前に次の行を挿入します。
workbook.Application.CutCopyMode = False
を参考に Excel.Workbook.Application.CutCopyMode を False にしようしたけど
XlCutCopyMode の定義がpublic enum XlCutCopyMode { xlCopy = 1, xlCut = 2, }
とかで入らない。なんでだ。(参考)
XlCutCopyMode 列挙型 (Microsoft_Office_Interop_Excel)
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.xlcutcopymode(office.11).aspxメンバ名 説明
xlCopy コピー モード
xlCut 切り取りモード_Application_CutCopyMode プロパティ (Microsoft_Office_Interop_Excel)
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel._application.cutcopymode(office.11).aspxXlCutCopyMode で使用できるのは、次に示す XlCutCopyMode 列挙型の定数のいずれかになります。
取得する値 説明
False 切り取りモードとコピー モードがいずれも選択されていない状態。
xlCopy コピー モード。
xlCut 切り取りモード。
・とりあえず xlCopy をセットしてみたところ警告ダイアログはでなくなった。
・xlCut でも同様。セッターでなんかやってるっぽい。
・と思ったら、Excelのプロセスが残るようになってしまっていた。
・と思ったら、それは Excel.Workbook.Application にアクセスしたせいで
余計なオブジェクトが増えたせいだった。
・CutCopyMode のセットを Excel.Application に対して行うように修正して解決。
・COM オブジェクトの操作はいろいろめんどくさいねという話。
状況は解決したけれど、そもそも Excel.Application.Run を叩いていたときはなんで平気だったのさともうちょっと調べてみる。
・Excel.Application.Run で叩いているVBマクロを空にすると終了しなくなる。
・徐々に削ってみたころ、Selection.AutoFilter を削ったところで終了しなくなった。
・逆に Selection.AutoFilter だけの場合は問題なし。
・と思ったら、AutoFilter のかかり具合によって挙動が違う。
・ただ、正常に終了する状態でも Excel.Application.DisplayAlerts を true にすると
クリップボードの警告はでる。
AutoFilter がかかっている場合はクリップボードの警告は関係なく、AutoFilter がかかっていない場合はクリップボードの警告を抑止する必要があるのはなんでだ。なにか副作用でもあるのか。
根本原因が他のところにあるんじゃないかという気がしてならないけれど、風邪で朦朧としていて検証コードを書く気力がないのでとりあえずここまで。もげる。