COM経由でのExcel操作は地獄?

VBAでExcelを操作するプログラムをC#に移行。 印刷に使用するActiveXオブジェクトを含む雛形ファイルを対象とするため、Managedな操作をするClosedXMLやNPOIではうまく動作せず、Interop.Excel経由で行った。 ClosedXML等と比較して圧倒的に動作が遅いのは当然として、シートをある程度(10枚以上?)コピーするとtmpファイルを書き込めない旨のエラーが発生する。 タイミングは実施するたびに違い、運が良ければエラーが発生しないこともある。 同様のエラーを探したが、結論としてはエラー時にリトライする処理を追加するくらいしかないらしい… https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother-mso_2010/vba%E3%81%A7%E3%82%B7%E3%83%BC%E3%83%88%E3%82%B3/b8b84a3e-d1f8-48a5-8623-04023c8510e8 こういった対処方法は、仕方ないとしても凹みますね。 機会があればネックとなっているActiveXオブジェクトをManagedな操作で置き換えていきたい。

<span title='2018-02-24 00:00:00 +0900 +0900'>February 24, 2018</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

AccessにOleDbアクセス時、日付型のパラメータを使用する場合は型を明示する必要あり

はまった… Accessのときのみ発生。 Parameterを使う際、通常、設定した値の型からよきにはからって処理してくれるが、AccessでDateTime、特に時刻部分が設定されている場合ではエラーとなる。 http://yan-note.blogspot.jp/2008/08/systemdatacommondbparameteraccessdate.html

<span title='2018-02-20 00:00:00 +0900 +0900'>February 20, 2018</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

C#でのDbTransaction.Rollback

C#のTransactionにて、DbTransactionをusing句で使えば、Disposeの際にRollbackされるので、明示的なRollbackが不要とあったのだが、どうもそのように記載しているサイトのほうが少ないように見える。 MSDNで確認したところ、そうあるべきではるが、ベンダー依存のため前提とするのはだめらしい。 Dispose should rollback the transaction. However, the behavior of Dispose is provider specific, and should not replace calling Rollback. https://msdn.microsoft.com/ja-jp/library/bf2cw321(v=vs.110).aspx SqlTransactionだけならいいかもしれないが、OleDb(Access)やMySQLも共通化している今のコードでは駄目なようだ。try catch使うしかない。 https://msdn.microsoft.com/ja-jp/library/system.data.idbtransaction.rollback(v=vs.110).aspx

<span title='2018-02-02 00:00:00 +0900 +0900'>February 2, 2018</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

iPad(9.7)でMicrosoft Remote Desktop使用時の注意事項

会社で支給されたiPad Pro 9.7inchで、Microsoft Remote Desktopを利用してWindows 10にアクセスしたところ、その後Windows10にローカルアクセスした際に英語キーボードの設定になっていた。 iPad Pro 9.7inchはSmartKeyboardを使用していて、英語キーボードしかないモデル。おそらくこの設定をMicrosoft Remote Desktopが設定してくれたのだろう。 賢いと言えば賢いのだが… Windows 10の設定を見ても日本語キーボードとなっている。一旦英語キーボードに変えようとするとサインアウトを促されるので、キーボードレイアウトの変更はサインアウトをしないと反映されないのだろう。 今回も一旦再起動することで日本語キーボードに戻った。

<span title='2018-01-27 00:00:00 +0900 +0900'>January 27, 2018</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

redmineのwikiにおけるhtmlのサポート

redmineで、markdown形式を使っていると、文字に色を付ける方法がない。 セキュリティの観点から、あえてすべてのhtmlタグをフィルタしているようだ… http://www.redmine.org/issues/20497 社内で運用している場合にセキュリティを気にして表現力が落ちてもしょうがないので、管理画面で切り替えるなどできるといいのだが… 以下のサイトを参考に設定ファイルを直接書き換え、利用できるようになった。 http://redmine.jp/faq/wiki/use-html-tag-in-wiki/

<span title='2018-01-25 00:00:00 +0900 +0900'>January 25, 2018</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41