2011年1月29日土曜日

[EXCEL]Chart.Export makes 0byte File

こんちは。Azureの続きをやるやる詐欺続行中の部隊長です。
今回もAzureはちょっとおいといて、絶賛進行中のプロジェクトから1ネタ。


現在進行中のプロジェクトで、某社販促グッズとして提供している某Excelブック(以下ツール)の改修を行っております。なんのこっちゃですね。

このツールでは集計したデータでグラフを作成し、それをフォームで表示するために一旦gifにExportしているんですね。

こんな感じで。

'' グラフタイトル設定
        .ChartObjects(1).Chart.ChartTitle.Text = GRAPHTITLE_ALL & " n=" & .Range(VALUE_N).Value        
        '' 画像ファイルのExport
        .ChartObjects(1).Chart.Export ThisWorkbook.Path & GRAPHPICT_ALL

このコードはExcel2000から2007まで問題なく動作します(97以前も動くかもしれんけど)
で、基本的に2010でも動くはず。

と思ったら、フォーム側のImageにロードする時にエラーが・・・


何故だと思ったら、出力されたファイルが0kbなんですね。空っぽです。
ググっても殆ど情報は出てきません・・・

そこで試しに簡単なサンプルを書いたら問題なく動作します。なんで?




対象のグラフが載ってるシートは非表示・・・!サンプルは表示・・・!


というわけでVisibleにしてやったらちゃんと動いた、というわけでした。
しかし、このブックはパスワードでロックされていて、表示するにはUnLockしなければならない・・・


というわけでこうゆう事になりました

'' Visible Befor Export (for Excel2010)
     ThisWorkbook.UnProtect password:="XXXXXXXXX"
        .Visible = xlSheetVisible
        
        '' 画像ファイルのExport
        .ChartObjects(1).Chart.Export ThisWorkbook.Path & GRAPHPICT_ALL
        
        .Visible = xlSheetHidden
     ThisWorkbook.Protect password:="XXXXXXXXXX"
        '' --

これはちょっと行き当たりばったり過ぎだろJK・・・
つかこんなとこにパスワード書くなよ。書き直し。


教訓:非表示シートを弄る際はお気をつけ下さい。


2011年1月24日月曜日

喫煙所検索サイト

喫煙所検索サイトを復活させてくれました。
といってもiPhone用だけど。
なので、IEでは上手く見えません。
http://kensaku.serve55.net

ちなみに、喫煙所の登録が可能!
問題は、GPSの精度だけど、きっと解決してくれるハズ。


2011年1月5日水曜日