掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エクセル新規作成でCOMException(インデックスが無効です) (ID:144964)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>それとも・・、 > xlApp = New Excel.Application >の時点では、シート数が1つしかないために、 >まだSheet1しか作成出来ない・・ということなのでしょうか。 微妙に違うけど、正確に書くなら『新規ブックが作成されたとき』だから >xlWb = xlWbs.Add のタイミングだね。 まず、本来の姿を説明します。 VB からエクセルに命令を出す場合、実際の作業を行うのは Excel.exe です。 だからエクセルがインストールされていないと実行できません。 当然、実行時の設定はエクセルに設定されている情報がそのまま使われます。 つまり SheetsInNewWorkbook の値がツール⇒オプション⇒全般タブ の、 「新しいブックのシート数」そのものなんです。 そして xlWb = xlWbs.Add した時に、新規ブックを開いたのと同じく SheetsInNewWorkbook の値が適用されなければなりません。 ところが、ツール⇒オプション⇒全般タブ の、「新しいブックのシート数」 が3にもかかわらず、デフォルト設定で"Sheet2"シートが無いらしい。 # ただし、実際のプログラム実行時のシート数とシート名はまだ調べてない # ですよね? それは本来の想定される結果ではありません。 挙動が違うということです。それは何かがおかしくなってるということでしょう。 例えば複数のバージョンのエクセルがインストールされてるとか、 過去のバージョンの情報が残ってるだとか、 そもそもエクセルが壊れてるだとか、 ユーザプロファイルが壊れてるだとか、 考えられる可能性を、色々テストして調査するしかありません。 >まだSheet1しか作成出来ない・・ということなのでしょうか。 知りません。自分で調べてください。Count プロパティの値を 出力して確認すればいいだけではないですか。それはボクの作業 ではありません。 >どのタイミングでSheet1〜3のシート名を得ることが出来るようになるものなんでしょうか。 それもステップ毎にプロパティから値を取得してみれば分かることでは? おそらく正常に取得できる開発マシンでの動きが本来の姿なのでしょう。 で、実行環境で何が違うかは、地道にどこで処理が食い違うか調べてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.