- ベストアンサー
0を非表示にする方法がわかりません。
0を非表示にする方法がわかりません。 VB2008とエクセル2007を使用しています。 xlApp = CreateObject("Excel.Application") xlBooks = xlApp.Workbooks.Add xlSheets = xlBooks.Worksheets(1) にてVB2008からエクセルのSheet1にデータを書き出しています。 書き出したSheet1の 0を非表示にする方法がわかりません。 エクセルマクロならActiveWindow.DisplayZeros = Falseで0が非表示になりますが、 VB2008でのプログラミング方法がわかりません。 お解りの方、ご伝授願いたく、宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
xlWindows = xlBooks.Windows xlWindow = xlWindows(1) ' xlWindows.Item(1) かも xlWindows.DisplayZeros = False という風にできませんかね? ちなみに >xlSheets = xlBooks.Worksheets(1) ですと問題があります。 参考:http://hanatyan.sakura.ne.jp/dotnet/Excel08.htm http://jeanne.wankuma.com/tips/vb.net/programming/releasecom.html
その他の回答 (1)
- bluecampus
- ベストアンサー率66% (138/209)
>xlSheets = xlBooks.Worksheets(1) は xlSheets = xlBooks.Worksheets xlSheet = xlSheets(1) と2段階にしないとだめということです。 # xlSheetsなのにWorkSheetオブジェクトが入っているわけなのね、、、 >xlSheets = xlBooks.Worksheets(1) >System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets) >xlSheets = Nothing だとWorkSheetsオブジェクトが解放されません。
補足
早速のご返答有難う御座いました。 説明不足で申し訳ありません。 質問ではエクセル2007としてありますが、 ユーザーがエクセル2000 2003 2007 と使用バージョンが混載する為、 OBJECT型にて作成してあります。 開放処理として System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets) xlSheets = Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks) xlBooks = Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp = Nothing を記載はしてあります。 とりあえず開放されている様なのですが・・・。