
■使用条件:
・Windows 10 Pro 64 bit
・Excel® 2019 MSO (バージョン 2202 ビルド 16.0.14931.20118) 32 ビット
・ .NET freamwork 3.5 and 4.8
■行っている事
・vbaでArraylistでリストを取得、SORT後に処理に利用していました。
・PCが故障して、OSも含めて再インストールを行い、EXCEL vbaの動作試験をしていました。
・vba の 「Arraylist,Add Sttring」部分で Add しなくなりました。
ずっと問題なく動作していたので、vba のバグではありません。
・大分昔に作って動作させていたので忘れていたのですが、「mscorlib.tlb」参照設定しないと動作しない?と思い出しました。
・しかし、「mscorlib.tlb」を参照設定しても動作しません。
・予想される原因は、PC故障前まではEXCEL 64 bit を使っていて、今回は32bit がインストールしたためだと予想しています。
・64 bit PC/ 64bit OSに 32 bit EXCEL を使ったときは、32 biti の.NET FreamWork3.5 or 4.8 を使えば良いのでしょうか?
・ 64 bit マシン/OS に 32 bit の .NET freamworkをインストールを問題なく出来たでしょうか?
これで動作するのか、試す前に 悩んでいます。 ご存知の方教えてください。
No.1ベストアンサー
- 回答日時:
当方、Windows 10 Pro 64 bitで
Microsoft® Excel® 2019 MSO (バージョン 2202 ビルド 16.0.14931.20118) 32 ビット
の環境ですが、問題なく使用できています。excelは32ビット版です。
すくなくとも、32ビットの.NETFRAMEWORKをインストールした記憶はありません。
.NETFRAMEWORK 4以上の場合
参照設定で
チェックを入れるのは、mscorlib.dllですね。
また、チェックをいれないで、
Dim aryList As Object
Set aryList = CreateObject("System.Collections.ArrayList")
aryList.Add "ABC"
のようにCreateObjectを使用しても、問題なく動作します。
ですので、32 bit の .NET freamworkをインストールする必要はないかと思われます。
私が解決案を提示できるわけではありませんが、参考までに
「Arraylist,Add Sttring」部分で Add しなくなりました。ということですが、エラーメッセージは何が表示されていますか?
回答ありがとうございます。
> 当方、Windows 10 Pro 64 bitで
Microsoft® Excel(…) 32 ビットの環境ですが、問題なく使用できています。
excelは32ビット版です。すくなくとも、32ビットの.NETFRAMEWORKをインストールした記憶はありません。
=> 32 bitの .net など入れなくても 問題なく動作していますか!
以前の状態と差があるとすれば、Excel 64bit => 32 bit だけなので、.NET freamworkが原因かと考えました。
> 参照設定でチェックを入れるのは、mscorlib.dllですね。
=> C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb を参照させると、
mscorlib.dll が現れるので、これにチェックを入れています。
> 「Arraylist.Add Sttring」部分で Add しなくなりました。ということですが、エラーメッセージは何が表示されていますか?
=> STEP実行して見ると、 string に文字列が入っているのに何も Addされず、空ListをSORTさせた後に
For Each aString In Arraylist <== Error ! Arraylistが 空 !!!
こんな感じで、Err Stop します。
> また、チェックをいれないで、
… 省略 …
問題なく動作します。
=> とのお話ですので、この前提で数行のプログラムを作ってテストを行ってみます。
No.3
- 回答日時:
確か64になるか32になるかにおいて、Officeは関係ない気もしました。
OSまたはVisual Studioなどで判断されたような?
大概VSインスト時に一緒に入って来ましたし。
過去に記事で4.7はともかく4.8が先に入ってると3.5のインストに失敗してたような?
なので最近はVBAの機能で解決するコードを書いてますね。
⇛うちは一応使えてますけど、使わないようになりました。
参照先(優先度?)がいつからか変更した感じでした。
VS立ち上げた際にそんなメッセージを見かけた覚えが。
回答有難うございます。
> 最近はVBAの機能で解決するコードを書いてますね。
=> 私もvba機能で作り込もうと思ったのですが、
ArrayList.Sort を使いたくて .NetのArrayListを使いました。
⇛うちは一応使えてますけど …
No 1の方も使えてるとのお話ですので、もう少し自分でしらべてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 2019 32-bit版を64-bit版にするには? 8 2023/07/28 14:20
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) 幾何学模様のセル内貼り付け 1 2023/07/11 00:45
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Excel(エクセル) [並べ替えの前に]、[選択範囲を拡張する]のが煩わしいッ! 1 2023/02/28 22:40
- オンラインゲーム Valorantの最低・推奨スペックについて質問させてください。 2 2022/09/07 17:48
- Windows 10 Windows 10の[アプリと機能]に表示されない旧バージョンのアプリを削除したい 1 2022/04/05 20:25
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
このQ&Aを見た人はこんなQ&Aも見ています
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
8
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
9
DoEventsがやはり分からない
Visual Basic(VBA)
-
10
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
11
構造体をコレクションに入れて扱いたいのですが…
コレクション
-
12
リンクをアップデートするしないの自動化
Excel(エクセル)
-
13
ArrayListの初期値に二次元配列を設定したい(VB2005)
Visual Basic(VBA)
-
14
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
15
VB.NETの配列とArrayListについて教えてください。
Visual Basic(VBA)
-
16
ADOでアクセスのレコードに複数のフィルタをかけるには?
Access(アクセス)
-
17
SQLPLUSで結果を画面に表示しない
Oracle
-
18
コマンドボタンを押すたびに大きくなってしまう
Excel(エクセル)
-
19
[VBA] Classから他のClassを呼び出す場合
Visual Basic(VBA)
-
20
VB2010で作成したdllからtlbが作れない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6で作成したアプリを配布する...
-
VB6.0で作成したexeファイルが...
-
VB6(SP5)+OO4OでCreateObjectが...
-
VB6のアプリケーションの配布
-
VB.NET(2017)で インストーラを...
-
[VB.net] ExcelへのQRコード出...
-
ビルドした.exeファイルは.NE...
-
C#で作ったプログラムの配布が...
-
Windows7にVC++がインストール...
-
VB.NET で作られたソフト...
-
.NETの標準ライブラリでExcelフ...
-
VBAでArrayListを使う為の「msc...
-
Visual Basic 6.0のヘルプ機能
-
Excelがインストールされてない...
-
VB.NETコーディング標準に沿っ...
-
発行元:不明???
-
VB6開発環境はWindowsServer200...
-
DAOバージョンの変更
-
VB2013で作成したプログラムの...
-
最新VBとpostgres8.3の接続につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでArrayListを使う為の「msc...
-
VB.NETでSPREADの設定方法
-
Product Codeの変更法は?
-
VB6(SP5)+OO4OでCreateObjectが...
-
う~ん…。
-
VB6で作成したアプリを配布する...
-
VB.NET(2017)で インストーラを...
-
VB6.0で作成したexeファイルが...
-
[VB.net] ExcelへのQRコード出...
-
Excelがインストールされてない...
-
.NETの標準ライブラリでExcelフ...
-
発行元:不明???
-
VB6のアプリケーションの配布
-
VB6(SP5)とSTARFAXのOCX
-
ExcelCreatorについて
-
VC++ msvcrt.dllについて
-
ビルドした.exeファイルは.NE...
-
VB2013で作成したプログラムの...
-
accessがインストールされてい...
-
ListViewで文字化けしてしまい...
おすすめ情報
★解決しました。
「アプリと機能」の「プログラムと機能」の「Windowsの機能の有効化または無効化」
というメニューから
□ .NET Framework3.5にチェックを入れる事で解決しました。
(□ .NET Framework4.8 Advanced Servicesにはチェックが既に入っていた。)
結局、今回のPC故障のO/S再インストール時に、なぜかこのチェックが付いてなかったと言うことだと思います。