ここから質問投稿すると、最大10000ポイント当たる!!!! >>

VB.ver :VB6SP5
動作環境:(1)windowsXPProSP1
     (2)windows95 I/E4.0 

以下のような、AドライブのVOL名を変更するだけの簡単なロジックなんですが、

動作環境(1)では起動するんですが、(製造は(1)の環境です)
    (2)では起動しません。(タイトルのエラーが表示されませす)

また、(2)の環境でインストール時に以下のようなエラーは発生しています。
『'C:\WINDOWS\SYSTEM\scrrun.dll'の登録中にエラーが発生しました』

もちろん、VB6SP5バージョンのRUNTIMEはインストール済みです。
http://www.komiya.co.jp/soft/ksrun.htm

こんな感じで、どこが悪いのかさっぱりわかりません。
解る方がいらっしゃれば、回答の方、よろしくおねがいいたします。

Private Sub Command1_Click()

Dim inFsoDrive As Scripting.Drive
Dim inDrive As String
Dim inFsoFileSystem As New Scripting.FileSystemObject

inDrive = "A"
Set inFsoDrive = inFsoFileSystem.GetDrive(inDrive)

inVolumeName = inFsoDrive.VolumeName

MsgBox inVolumeName

inFsoDrive.VolumeName = "VOL055"
End Sub

このQ&Aに関連する最新のQ&A

run dll」に関するQ&A: run.dll32.exe について

A 回答 (1件)

エラーを見れば原因も丸分かりかとおもいますが。


scrrun.dllはScripting.FileSystemObjectに関するファイルです。これはIEに含まれるファイルですが、IE4のそれが既に入っていてその上書きに失敗?しているのでしょうかね。よく分かりませんが。

まぁWin95+IE4の環境とWinXP+IE6の環境は違いが大きすぎるので同じプログラムを使うのは相当無茶かと思います。
対策としては
・95用とXP用で作り分ける
・95のIEを5ぐらいまで挙げるとか
    • good
    • 0
この回答へのお礼

ご指摘通り環境面でかなり無理があったみたいです。

何とか、APIを使用したコーディングで成功しました。

回答、ありがとうございました。

お礼日時:2004/08/30 16:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q実行時エラー429

あるプログラムを起動させようとすると
以下のメッセージが出てきてしまい起動できません。

実行時エラー429
ActiveXコンポーネントは、オブジェクトを作成できません。

対応策は、ございますか?
VB6の最新版は、ダウンロード済みです。
http://www.vector.co.jp/soft/win95/util/se188840.html

Windows98
Office97

諸事情でこちらの環境を替える事は、
出来ないんです・・・

Aベストアンサー

こんばんは。

よくわからないのですが、dao360.dllが入っていないから出るメッセージならば
下記参考URLからダウンロードしてみてはいかがでしょうか。

参考URL:http://www.vector.co.jp/soft/win95/util/se257084.html?site=n

Q実行時エラー’429’: ActiveXコンポーネントはオブジェクトを作成できません。

源氏物語夕顔編というフリーで、広告が表示されるのタイピングソフト
をインストールすると、

「実行時エラー’429’: ActiveXコンポーネントはオブジェクトを作成できません。」

というエラーが表示されるようになり、
ソフトをアンインストールしたのですが、
Windows XPの起動時に必ず
このメッセージが出るようになってしまっています。

インストールしたタイピングソフトはコチラです↓
http://www.vector.co.jp/soft/win95/edu/se448263.html

調べたところ、ランタイムという実行環境が無くなってしまったようなのですが、どうやって修正すれば良いかわからず、

このメッセージを消す方法をご存じでしたら教えてください!

エラーメッセージを添付致します。

Aベストアンサー

こんにちは。

何らかの原因で、時間がかかり過ぎて、インストールができなかったものと考えます。

「スタート」「検索」「ファイルとフォルダーすべて」を選択「ActiveX」と入力。「検索開始」。

検索された中に「源氏物語夕顔編のActiveX」が出てくるかもしれません。右クリックで「削除」をして、再度「源氏物語夕顔編」へアクセスしてみてはいかがでしょうか。

QVB6のプログラムをWIN7で使いたい

OSをXpからWIN7に移行しなければならなくなり、環境移行のテストをしています。
VB6で組まれた業務用プログラムがあり、現在Xpで動作しています。
このプログラム自体はWIN97の時代に作成されたものです。
簡単に説明しますと、データがAccessのデータベースにあり、それを使って技術計算をするプログラムです。
WIN97に入れると、セットアップは成功するのですが、Accessとデータをやり取りする部分でエラーが起きているようです。
そもそも、VB6自体がWIN7にはセットアップできないようで、再コンパイルできません(再コンパイルで動くかどうかも不明ですが)。
WIN7上で動かす良い方法がないでしょうか。

Aベストアンサー

VB6アプリケーションは、Windows7でも動作可能です。
ただし、サードパーティ製のActiveXコントロールを利用している場合は、
その限りではありませんが。

ActiveXコントロールが不足してたりしませんか?
ActiveXコントロールを含めたインストーラーを使ってインストールしていますか?

EXEをコピーしただけで動かないと言っているのであれば、
WinXP(もちろんWin98でも可)あたりにVB6を入れて、インストーラーを作成して下さい。

もしくは、ActiveXコントロールをインストールする為のダミーのツールでもインストールすれば良いかな。

こんなの
http://www.vector.co.jp/soft/win95/util/se188840.html

QActiveX → VB を起動するとCreateObjectできない。

初めまして。
2003Server+IIS6.0の環境でASP内のActiveXからShell関数でvbのexeを実行させる処理を作成しております。
サーバーから直接exeを実行させると正常に動くのですが、Web上からasp→ActiveX→exeを起動させるとテキストに書き込む処理はできるのですが、「CreateObject」文で「ActiveX コンポーネントはオブジェクトを作成できません」というエラーが返ります。

VB内でなぜ「CreateObject」が出来ないのかご存知の方はいますでしょうか。
宜しくお願いいたします。

Aベストアンサー

Ano.2さんが回答されていますが、アクセス権がないんじゃないかとおもいます。
IISの場合、
 ASP自身(IIS自身)のアカウントとしてIWAS_マシン名
 ASPを見るインターネットゲストアカウントとして IUSR_マシン名
の二つがあります。
デフォルトでは
IWAS_マシン名のアカウントはサービスユーザとして、
IUSR_マシン名のアカウントはGuestユーザとして
のアクセス権が与えられます。
IUSR_マシン名 のユーザに適当なフォルダアクセス権や実行権を与えてあげれば、動作すると思います。

QVB6(SP5)+OO4OでCreateObjectが失敗する

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパック9.2.0.1.0を管理者モードでインストールしています。
もちろんOO4Oはインストールされていますし、VBの参照設定でOracle InProc Server 4.0 Type Libraly を追加しています。

何度か再インストールなどしましたが全く同じです。何がいけないのでしょうか?直接回答でなくてもヒントでも何でも教えてください。

なおSQL Plusでテーブルの参照はできています。

上記の環境でプログラムを作成しています。
Windows2000ではうまくいきました。
WindowsXP(Professional)で失敗します。

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(C_ORACLE_TNS, C_ORACLE_USER & "/" & C_ORACLE_PASS, 0)

のようなコーディングでCreateObjectのところで失敗しエラーとして429 ActiveX コンポーネントはオブジェクトを作成できません。
というのが発生します。

Oracleのバージョンは9iでそのクライアントパッ...続きを読む

Aベストアンサー

通常は正しく削除されてしかるべきなのでしょうが、レジストリにキーが残った状態になることもありますので
・・・
完全削除についてはリリースノートにも記載されております。

Oracle9i Client for Windows インストレーション・ガイド リリース2 (9.2.0.1.0)(2002/8/7)
「オラクルコンポーネントのインストール」「oracleコンポーネントとサービスの削除」

参考URL:http://otn.oracle.co.jp/document/products/oracle9i/920/windows.html

QVBからACCESSのレポートをプレビューで表示

お世話になっております。
VBからのMDBの帳票印刷の事で悩んでおります。

データベースとしてMDBを使用しているので、MDBのレポートのプレビュー
を表示しようとしました所、下記のコードで実現することができました。

Dim oleAccess As Access.Application

Set oleAccess = GetObject(App.Path & "\data.mdb")
Call oleAccess.DoCmd.OpenReport(ReportName, acPreview)

oleAccess.DoCmd.Maximize
oleAccess.Visible = True

開発環境では問題なくプレビューの表示ができたのですが、
このプログラムを、ACCESSの入っていない環境で、ACCESSランタイムをインストール
して実行すると、印刷時に「エラー429 ActiveXコンポーネントはオブジェクトを作成
できません」とのエラーが出て、印刷だけができません(その他の動作は正常です)。

エラー内容から、ACCESSオブジェクトの作成に失敗していると思うのですが、
Access.Application型を使わずに、ACCESSのプレビュー・印刷をする方法は無いのでし
ょうか?(たとえば、DAO.DataBase型でMDBを開いて印刷する方法など・・・)

以前にも同じような質問をさせて頂いたのですが、私の力不足のため、再度ご質問させて頂きます。

どんな事でもいいので、アドバイスを頂ければ幸いです。
よろしくお願い致します。

お世話になっております。
VBからのMDBの帳票印刷の事で悩んでおります。

データベースとしてMDBを使用しているので、MDBのレポートのプレビュー
を表示しようとしました所、下記のコードで実現することができました。

Dim oleAccess As Access.Application

Set oleAccess = GetObject(App.Path & "\data.mdb")
Call oleAccess.DoCmd.OpenReport(ReportName, acPreview)

oleAccess.DoCmd.Maximize
oleAccess.Visible = True

開発環境では問題なくプレビューの表示ができたのですが、
このプロ...続きを読む

Aベストアンサー

VBのランタイムももちろん入っているのですよね?
OSやIEのバージョンなどの違いでも同事象が発生することがあるようです。
「エラー429 ActiveXコンポーネント」でネット検索すると色々情報が出るので見てみて下さい。

参考URL:http://search.yahoo.co.jp/search?ei=UTF-8&fr=df-luna2&meta=vc%3D&p=%E3%82%A8%E3%83%A9%E3%83%BC429+ActiveX%E3%82%B3%E3%83

Qexcel2010でのCreateObject

OS:Windows7Pro
Office:オフィス2010

Excel2007で作成したメール一括送信プログラムがExcel2010でエラーが発生します。
CreateObject メソッドを使用して Outlook Application オブジェクトを作成する際に
「実行時エラー'429'
ActiveXコンポーネントはオブジェクトを作成できません。」
と表示されます。デバッグ画面では
Dim myOLApp As Object
Dim myDATA As MailItem
'### OUTLOOKのオブジェクトを作成後、メールを新規作成する。
Set myOLApp = CreateObject("Outlook.Application")  
Set myDATA = myOLApp.CreateItem(olMailItem)


Set myOLApp = CreateObject("Outlook.Application") 
この部分でエラーになっています。

VB6.0SP6ランタイムのインストールをしましたが状況は変化しません。
Excel2007では正常に動作します。

どこを修正すればよいのでしょう?

ご教授いただけると幸いです。宜しくお願いいたします。

OS:Windows7Pro
Office:オフィス2010

Excel2007で作成したメール一括送信プログラムがExcel2010でエラーが発生します。
CreateObject メソッドを使用して Outlook Application オブジェクトを作成する際に
「実行時エラー'429'
ActiveXコンポーネントはオブジェクトを作成できません。」
と表示されます。デバッグ画面では
Dim myOLApp As Object
Dim myDATA As MailItem
'### OUTLOOKのオブジェクトを作成後、メールを新規作成する。
Set myOLApp = CreateObject("Outlook.Application")  
Set myDATA = myOLA...続きを読む

Aベストアンサー

Windows XP SP3 & Office 2010 で試しましたが
問題ありませんでしたが・・・?
※タスクマネージャのプロセスタブで確認しただけです。

createobject("internetexplorer.application")

createobject("word.application")
の場合はどうでしょう?

Windows 7 は持ち合わせておりませんが
OS の何かが問題ではないかな?と思います。。。
UAC ユーザーアカウント制御 とか 64ビット?

見当違いかもしれません。ご参考までに。

QEXCELでactivexコントロールを挿入できな

お世話になります。
環境はWindows8.1+EXCEL2010です。
タイトルの通り、ワークシート上にactivexコントロールのラベルやテキストボックスなどを挿入しようとすると「オブジェクトを挿入できません」というエラーが表示されてしまいます。
月並みな表現ですが、まさに昨日まで特に問題なく使用できていたため、原因がわからず非常に困惑しております。
ちなみに昨日まではVBAにてワークシート上に正常に配置できていたラベルコントロールが、本日では「実行時エラー1004: オブジェクトを挿入できません」というエラーを表示して正常に配置できなくなってしまい、異常が発覚した次第です。"Microsoft Forms 2.0 Object Library"への参照設定がなされていることは確認しています。
他に確認すべき点などございましたら、ぜひご教授いただければ幸いです。
よろしくお願いいたします。

Aベストアンサー

当方2014/12/10の夜に更新プログラムをインストール後、
同じ現象が発生しており、解決いたしましたので、参考になればと思い回答いたします。
Windows7 32bit
Excel2013


(当方が解決した方法)
Cドライブ内を「*.exd」で検索し、検出されたファイルをすべて削除します。



(exdファイルについて)
Excel上で、ActiveXコントロールを挿入した際、キャッシュのために一時フォルダなどに作成されます。


(考えられる原因)
更新プログラムの中に脆弱性を解決するプログラムがいくつか含まれております。
ActiveXコントロールに関係したセキュリティホールがあったと予測できます。
そのうえで考えると、更新適用前のOfficeで作られたexdファイルを使われるとセキュリティ上まずいので、使わせないようにしたのではと予測できます。


(参考にしたサイト)
https://social.technet.microsoft.com/Forums/office/en-US/b8f0af82-0bb8-4799-aa62-1dbcbc5b7742/excel-2010-macros-does-not-work-after-updates-9dec2014?forum=excel

当方2014/12/10の夜に更新プログラムをインストール後、
同じ現象が発生しており、解決いたしましたので、参考になればと思い回答いたします。
Windows7 32bit
Excel2013


(当方が解決した方法)
Cドライブ内を「*.exd」で検索し、検出されたファイルをすべて削除します。



(exdファイルについて)
Excel上で、ActiveXコントロールを挿入した際、キャッシュのために一時フォルダなどに作成されます。


(考えられる原因)
更新プログラムの中に脆弱性を解決するプログラムがいくつか含まれております。
Acti...続きを読む

QActiveX DLL と ActiveXコントロールの違い

VB6で開発をしています。
複数のEXEファイルを使用するシステムです。
各EXEファイルの共通のモジュールをライブラリ化しようと思っています。

これは [ActiveX DLL] 又は、[ActiveXコントロール] のどちらでも実現できると思うんですが、どちらで作成した方が良いのでしょうか?

それぞれのメリット、デミリットを教えて下さい。

Aベストアンサー

混乱させますw

私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。
WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。
その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。


ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。
ただし宣言が
As HogeHoge←(DLLの定義)を
As Object
として、CreateObject("DLL定義")のように行うと、引数が一緒ならEXEはリコンパイルしないでもいいです。実例として、エクセルを参照設定して[as Excel]と宣言していたら、その参照設定に対応したExcelしか操作できませんが、[As Object]と[CreateObject("Excel.Application")]とすると、EXCEL95~XPまで扱えます。
不便なのは、タイプライブラリが未設定になるので、Excelの各プロパティ/メソッドを知らないといけないし、Excel固有の定数が宣言もされてないので、自分で定数値を調べなければいけません。でもバージョンの違いを気にしないでいけるのは、非常に便利です。


速さのことを言ったら、当然DLLが早いです。
OCXはプロパティにRight/Leftなどを持っています。変えて言うと実体を持っていると言うことです。非表示にしていても実体をもっています。DLLはインスタンスは生成されますが、OCXだって生成されるので、表示しないで使用するなら、OCXの意味があまりありません。


んで、私(個人)の考えとしては、、、
※オリジナルボタンなどの、画面上必要ならOCX
  理由:画面に必要だから
※画面に表示を行う必要がなくても、配布する気ならOCX
  理由:配布先のユーザが扱いやすい
※そうじゃなければDLL
  理由:OCXにする理由が見つからないから


余談です。
私はいつもCommonコントロールは使用しません。
  理由:簡単なAPIでも実現できるのに、機能が少ないCommonコントロールを追加して、EXEの容量を大きくしたくないから

混乱させますw

私も最近まで知らなかったのですが、任意のタイミングでOCXもインスタンスの生成が可能みたいです。
WinSockを張らずにPGを書き上げ、WinSockコントロールを使用する方法がわたしの利用しているメーリングリストに出ておりました。
その結末は、「あまり公開はされてはいないけど、ほとんどのコントロールはEXEにしてからOCXとして取り込むことができる」ということです。


ActiveXDLLも参照設定をしなければ、DLLバージョンが違っても大丈夫です。
ただし宣言が
As HogeHoge←(DLLの定...続きを読む

Qエクセル VBA ユーザーフォームを閉じる

ユーザーフォームを開く時は
UserForm1.Showですが
閉じる時は?
UserForm1.Close
だとコンパイルエラーになります。
End
にするしかないですか?

Aベストアンサー

Unload Me とか Unload UserForm1 でユーザーフォームを閉じることができます。


人気Q&Aランキング