■使用条件:
・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も見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
VBから参照できないCのDLLを使用する方法
Visual Basic(VBA)
-
-
4
構造体をコレクションに入れて扱いたいのですが…
コレクション
-
5
Excel ユーザーフォームで表示させた画像をユーザーフォーム上で保存したい
Visual Basic(VBA)
-
6
psqlでエラーログをとりたい
PostgreSQL
-
7
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
8
フォームでPDFを表示させたいときは
Visual Basic(VBA)
-
9
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
10
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
11
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
12
コマンドボタンを押すたびに大きくなってしまう
Excel(エクセル)
-
13
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
16
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
17
VBA 数値を文字列として貼付したい
Excel(エクセル)
-
18
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
19
ExcelVBAでListViewが使用できない
Visual Basic(VBA)
-
20
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB.net] ExcelへのQRコード出...
-
VB6(SP5)+OO4OでCreateObjectが...
-
発行元:不明???
-
VB6.0で作成したexeファイルが...
-
VB6で作成したアプリを配布する...
-
異なるバージョンのVB共存
-
どこでも動くプログラムを作成...
-
マルチプラットフォームか、ま...
-
Product Codeの変更法は?
-
visual studio code 共有方法
-
vba 時間の引き算 例えば 15:00...
-
Designer.vbは直接コードをいじ...
-
Visual Studio 「AnyCpu」について
-
C#ソースをCSCファイルにてコン...
-
「読み込み違反」が起きたとき...
-
印刷要求順番と印刷出力順番が...
-
excel vbaから実行するexe実行...
-
意味不明の実行時エラーで困っ...
-
C++初心者です。 debug asserti...
-
VB2008→VB2010でエラーが出てま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでArrayListを使う為の「msc...
-
VB.NETでSPREADの設定方法
-
VB6(SP5)+OO4OでCreateObjectが...
-
発行元:不明???
-
[VB.net] ExcelへのQRコード出...
-
Excelがインストールされてない...
-
VB6で作成したアプリを配布する...
-
ビルドした.exeファイルは.NE...
-
次のクラスは登録されていませ...
-
Product Codeの変更法は?
-
う~ん…。
-
VB.NET(2017)で インストーラを...
-
VB6のアプリケーションの配布
-
Visual Studio 2005は64ビットO...
-
Microsoft Visual C++ をアンイ...
-
vb.netのソフトを開発でレジス...
-
C#で作ったプログラムの配布が...
-
ListViewで文字化けしてしまい...
-
6.0から2005へのアップグレード
-
DirectXを使った動画再生プログ...
おすすめ情報
★解決しました。
「アプリと機能」の「プログラムと機能」の「Windowsの機能の有効化または無効化」
というメニューから
□ .NET Framework3.5にチェックを入れる事で解決しました。
(□ .NET Framework4.8 Advanced Servicesにはチェックが既に入っていた。)
結局、今回のPC故障のO/S再インストール時に、なぜかこのチェックが付いてなかったと言うことだと思います。