tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcelのvisibleプロパティが効かない
記事No1690
投稿日: 2005/05/13(Fri) 15:35
投稿者りく
[OSのVer]:WindowsXp    [VBのVer]:VB.NET
[ExcelのVer]:Excel2002SP1

現在、VBからExcel操作を行っております。

Excelの表示設定を非表示に設定した後、
対象ブックをオープンしているのですが、
オープンした時点でExcelが画面に表示されてしまいます。

原因の切り分け作業を行ったところ、
対象ブックにコントロール(オブジェクト)が貼り付けられていると
上記のような現象が発生するみたいでした。

コントロールが貼り付けられていても非表示のまま(一瞬でも表示しない)
Excel操作を行いたいのですが、対処方法をご教授していただけませんでしょうか?

よろしくお願いします。

[ツリー表示へ]
タイトルRe: Excelのvisibleプロパティが効かない
記事No1692
投稿日: 2005/05/13(Fri) 17:05
投稿者花ちゃん
> コントロールが貼り付けられていても非表示のまま(一瞬でも表示しない)
> Excel操作を行いたいのですが、対処方法をご教授していただけませんでしょうか?

普通に操作しても表示しませんが、事象を再現できる最低限のコードを投稿
して下さい。
因みに、ここに掲載しているコードでシートにコントロールを色々貼り付けただけの
ファイルを使用しました。

ひょっとして、マクロが動作しているとかはないですか?

[ツリー表示へ]
タイトルRe^2: Excelのvisibleプロパティが効かない
記事No1693
投稿日: 2005/05/13(Fri) 17:48
投稿者りく
[OSのVer]:Windows    [VBのVer]:VB.NET  
[ExcelのVer]:Excel2002SP1

ご回答ありがとうございます。

> 普通に操作しても表示しませんが、事象を再現できる最低限のコードを投稿
> して下さい。

以下が切り分け作業で用いたコードです。

Dim xlApp As Excel.Application
Dim xlBooks As Excel.Workbooks
Dim xlBook As Excel.Workbook

xlApp = New Excel.Application

'原因調査の為、明示的に非表示を設定
xlApp.Visible = False

xlBooks = xlApp.Workbooks
xlBook = xlBooks.Open("Test.xls") ←デバッガでステップ実行して行くと
                   ここでExcelが表示される。

xlBook.Close()
xlApp.Quit()

'オブジェクト解放
ReleaseXlsObj(xlBook)
ReleaseXlsObj(xlBooks)
ReleaseXlsObj(xlApp)

> ひょっとして、マクロが動作しているとかはないですか?

Visual Basic Editorで全シート確認してみましたが、マクロはありませんでした。
あと、原因調査に用いたブックですが、
テスト用に新規に作成した空ブックで、Sheet1に適当なコントロール
(バーコードやグラフなど)を貼り付けただけのものです。

以上、よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: Excelのvisibleプロパティが効かない
記事No1694
投稿日: 2005/05/13(Fri) 18:35
投稿者花ちゃん
再現できません。
Excelは表示されません。

タスクバーにも表示されていません。

もう一度、単純にボタンのイベント内ですべてが動作するように作成して試して見て下さい。
    Private Sub Button3_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button3.Click
        Dim xlApp As Excel.Application
        Dim xlBooks As Excel.Workbooks
        Dim xlBook As Excel.Workbook
        xlApp = New Excel.Application
     '   xlApp.Visible = True
        xlBooks = xlApp.Workbooks
        xlBook = xlBooks.Open("Test.xls")
        xlBook.Close()
        xlApp.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
    End Sub

[ツリー表示へ]
タイトルRe^4: Excelのvisibleプロパティが効かない
記事No1695
投稿日: 2005/05/13(Fri) 19:06
投稿者りく
[OSのVer]:Windows    [VBのVer]:VB.NET  

> 違うのは、下記の部分とファイルだけです。
> System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
> System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
> System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)

> もう一度、単純にボタンのイベント内ですべてが動作するように作成して試して見て下さい。
今度は花ちゃんさんのレスにあるコード(ただしファイルパスとVisibleはFalseに変更)
で新規プロジェクトを作成し、動作させてみましたが結果は同じで表示されてしまいました。

環境に関係している可能性があるかも知れないので別の環境で試してみようと思います。
回答ありがとうございました。

[ツリー表示へ]