今回も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・・・
つかこんなとこにパスワード書くなよ。書き直し。
教訓:非表示シートを弄る際はお気をつけ下さい。
0 件のコメント:
コメントを投稿