Excel VBA 質問スレッド №2154 (未解決)

CreatObject(System.Collections.ArrayList)が呼び出せない

投稿者 : うこ虫     投稿日時 : 2025/10/16(Thu) 18:45:11     OS : Windows 7     EXCEL : Excel 2000
一般的なネット検索で導き出せる対策はやり尽くした上での質問です。
テストモジュールの全文
Option Explicit

Sub test()
    ' オブジェクトの作成
    Dim ar As Object
    Set ar = CreateObject("System.Collections.ArrayList")

    ' 要素の追加
    ar.Add ("さしすせそ")
    ar.Add ("なにぬねの")
    ar.Add ("かきくけこ")
    ar.Add ("あいうえお")
    
    Dim st As String
    Dim i As Integer
    
    ''内容確認
    For i = 0 To ar.Count - 1
        st = st & ar.Item(i) & vbCrLf
    Next
    Debug.Print st
    
    ' 配列のソート
    ar.Sort
    
    ar.Reverse
    
    ' ソート後の配列の内容確認
    st = ""
    For i = 0 To ar.Count - 1
        st = st & ar.Item(i) & vbCrLf
    Next
    Debug.Print st
    
    ' ar.istオブジェクトの破棄
    Set ar = Nothing    
End Sub

上記を実行すると「Set ar = CreateObject("System.Collections.ArrayList")」の行で
実行時エラー'2146232576(80131700)':
オートメーションエラーです。
と表示されて処理が停止します。

OSの環境としてはWindows7-64
VB6.0Runtime
.netFramework4.7

Officeのバージョン2000SR3でFileFormatConverters.exeをあてています。
参照設定で、C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb と
Common Language RuntimeExecutionEngine 2.4 Library を追加しています。
AddinでAddLineNumbersとMouseWheelFixをインストールしています。


不思議なことに前述のモジュールの変数の型を削除して
debug.printをWScript.Echoに置き換えてVBSとして実行すると
問題なく通ってしまうんです。

なにか知見をお持ちの方いらっしゃればアドバイスお願いします。

スポンサーリンク
[返信 1] Re : CreatObject(System.Collections.ArrayList)が呼び出せない
投稿者 : tek     投稿日時 : 2025/10/17(Fri) 10:23:52
Windows 7 Excel 2000で参照設定してレイトバインディングってどうなんでしょう?
VBSで動作するんだったら参照設定を止めてみてはどうでしょう。

[返信 2] Re : CreatObject(System.Collections.ArrayList)が呼び出せない
投稿者 : ごんぼほり     投稿日時 : 2025/10/17(Fri) 13:25:57
私の記憶が確かなら、Office2000はWindows7が出る前にサポート終了していると思うのですが、
この問題以外では、問題無く使えているのでしょうか?

ちなみに Excel2000は32bit版ですか、64bit版ですか?
2000だと64bit版はなかったかもしれません

Windowsが64bit版だと、.net Framework の32bit版がインストールされていない環境かもれません。
32bit版のExcelVBAから使うには、32bit版のnet Framework が必要なのではないかと思います

[返信 3] Re : CreatObject(System.Collections.ArrayList)が呼び出せない
投稿者 : うこ虫     投稿日時 : 2025/10/17(Fri) 18:35:41
■[返信 1] tekさん(2025-10-17 10:23:52)の記事
> Windows 7 Excel 2000で参照設定してレイトバインディングってどうなんでしょう?
> VBSで動作するんだったら参照設定を止めてみてはどうでしょう。

ご返信ありがとうございます。
mscorlib.dllの参照を外してみましたが現象は変わらずでした。

[返信 4] Re : CreatObject(System.Collections.ArrayList)が呼び出せない
投稿者 : うこ虫     投稿日時 : 2025/10/17(Fri) 18:41:53
■[返信 2] ごんぼほりさん(2025-10-17 13:25:57)の記事
> 私の記憶が確かなら、Office2000はWindows7が出る前にサポート終了していると思うのですが、
> この問題以外では、問題無く使えているのでしょうか?

> ちなみに Excel2000は32bit版ですか、64bit版ですか?
> 2000だと64bit版はなかったかもしれません

> Windowsが64bit版だと、.net Framework の32bit版がインストールされていない環境かもれません。
> 32bit版のExcelVBAから使うには、32bit版のnet Framework が必要なのではないかと思います

基本的に問題なく使えているのですが、時折なにかが壊れてOfficeの修復しようが
アンインストールしてセットアップやり直そうがどうにもならなくなることがあります。
以前はInStrRevが0しか返さなくなりました。今回もシステムの修復を覚悟しています。

[返信 5] Re : CreatObject(System.Collections.ArrayList)が呼び出せない
投稿者 : jindon     投稿日時 : 2025/11/06(Thu) 10:49:30
>.netFramework4.7

.netFramework3.5 が必要です。
リンクからinstallできます。
https://www.microsoft.com/ja-jp/download/details.aspx?id=21

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-11-27 07:43:12 )
タイトルとURLをコピーしました