ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

EXCEL VBAコミュの実行時エラー '50290':の対処法について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
表題のエラーについてですが

解決方法を探しております。

私が作成したツールを配布して使用してもらったところ発生した模様です。
勿論私の環境では問題なく動作できるのですが配布先でご利用頂いている異なる
環境では実行時エラーが発生し動作ができないとのことでした。

以下のVBSでエクセルを起動
----------------------------------------------------------
Option Explicit
Dim objExcelApp, strPath
Const BookName = "Exam_Master.xls"
Set objExcelApp = CreateObject("Excel.Application")
With WScript
strPath = Replace(.ScriptFullName, .ScriptName, "")
End With
objExcelApp.Workbooks.Open strPath & BookName, False, False
objExcelApp.Visible = True
Set objExcelApp = Nothing
----------------------------------------------------------

私の環境 OS:XP Excel2007
配布先環境 OS:Vista(SP2) Excel2007

詳しいエラーログ
---------------------------------------------------------
実行時エラー '50290':
 'ScreenUpdating'メソッドは失敗しました:'_Application'オブジェクト
---------------------------------------------------------

色々調べてみて原因として考えられる要素

その1
ActiveX コントロールなどの外部コンポーネントとの通信の間でイベントを発生させるプログラムの場合
一時的に Excel の準備ができていない状態になることがあり、
(Application.Readyが何かしらでFalseになっているため)
このときにオートメーションの通信を行うと、Excel は実行時エラーを返す。

その2
VBSのコーディングに問題がある?




以下(VBAフォームモジュール)がエラー発生したプロシージャになります。

Private Sub ListBox1_Click()

Application.ScreenUpdating = False 'パフォーマンス向上
'Selectボタンのフラグが立っている時は、シート(4)以降を削除


If Range("X1").Value = 1 Then
Call Del_Sheet
Worksheets("control").Activate
Range("DV1:DV100").Value = Null
End If

Range("DT1").Value = ListBox1.Value 'リストボックスで選択したテスト項目を記録

Const cnsDIR = ".JPG"
Const NoImage = "\NoImage"
Dim MyPath As String
Dim P_name As String
Dim strFILENAME As String
Dim CheckFile As String


MyPath = ActiveWorkbook.Path
P_name = Range("DT1").Value

Call Open_F
Range("X1").Value = 1 'Selectボタンのフラグ立て
Label2.Caption = Range("DT1").Value 'テストジャンルをラベルに反映

'*******************************************************************

'テスト選択リストを動的コントロール
Dim lastRow As Long '最終行変数
With Worksheets("control")
lastRow = .Cells(Rows.Count, 126).End(xlUp).Row
End With

ListBox2.RowSource = "DV1:DV" & lastRow

'*******************************************************************
CheckFile = Range("DT1").Value & cnsDIR
strFILENAME = Dir(MyPath & "\LOGO\" & P_name & cnsDIR)
If CheckFile = strFILENAME Then
Image2.Picture = LoadPicture(MyPath & "\LOGO\" & P_name & cnsDIR)
Else
Image2.Picture = LoadPicture(MyPath & "\LOGO\" & NoImage & cnsDIR)
End If

CommandButton1.Visible = False
Label5.Visible = True
ListBox2.Visible = True
Call List_s '音
Application.ScreenUpdating = True 'パフォーマンス向上

End Sub

同様のエラーに対するデバッグを経験された方、ご存知の方がいらっしゃいましたら
ご教授願います。

コメント(5)

VBAでエラー?VBSでエラー?
VBAならデバッグはどの構文で発生?

エラーソースを見る限りだと、VBA側のApplication.ScreenUpdatingで発生してるみたいですが、前半?後半?どっちの構文?
これ?

実行時エラー'50290'について
<http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200906/09060055.txt>
> 魔流さん
レスありがとうございます。

VBA側か?VBS側か?

の切り分けが難しい所でございます。

その方(配布先の方)曰く
VBSダブルクリック実行で
初期動作までは行けたようです。

(ワークブックのOpenイベントにUserForm1.Showを入れてます)

問題はその後のリストボックスクリック操作
(本文に書いたソース)
で、発生したようです。
> 卍さん
レスありがとうございます。

今は出先で携帯からの書き込みになります。
何故か?携帯からだと貼って頂いた
リンク先に飛べないようで...

自宅に帰ったらリンク先を確認してみます。

ありがとうございました。
本件、解決しました。

事象の詳細ですが

VBSダブルクリックによるマクロ実行→エラー

通常通り開く→マクロ有効化→実行→正常に可動

といった結果から
VBA側に不具合は無く
どうやらVBSによる起動に問題がありそうです。


VBS側においても、構文ミスがある訳でも無さそうです。

調べた範囲でのお話しになりますが

どうやら、Vista(SP2)において
旧バージョンからのアップデートに
一部でも失敗がある場合
このような事象に当たる可能性が高いようです。(アドイン登録の失敗等)

※但し、アップデートの不具合箇所を全て直せば成功するようです。XPに於ては当現象は未確認


この事により
VBSで起動させる仕様を除き

今後は、通常通り開いてからマクロ有効化を選択してもらい
マクロ起動ボタンを押してもらうような
仕様に変更しました。
(手堅い方法)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。