かなり絶望感があります。
ただ、ここで終わるわけにはいきません。
今回はさらに踏み込みました。
なんと、
Excel 64bit をアンインストール
↓
Excel 32bit を再インストール
ここまで実施しました(笑)
理由はシンプルです。
「32bit版では、実際どう見えるのか?」
これを確認したかったからです。
32bit ではきちんと見えていました。ListView♪


すると今度は、別の疑問が発生しました。
Microsoft ListView Control, version 6.0(MSCOMCTL.OCX) の参照先が、SysWOW64 のまま変わらない
です。

普通に考えると、
32bit → System32
64bit → SysWOW64
になりそうです。
でも実際は逆。
ここで完全に混乱しました。
今回は、WindowsのややこしいDLL構造
ここをCopilotと一緒に整理していきます。
目次
今回使用した環境
・Windows 64bit
・Excel VBA 32bit
・MSCOMCTL.OCX 使用
・ListView 導入検証中
【注意】64bit VBA問題 環境によって異なります
Microsoft365の64bitでは、2017年7月19日の更新プログラムで、mscomctl.ocx のサポートが追加されています。
Office スイート: セキュリティ以外の更新プログラム
- mscomctl.ocx の 64 ビット サポートを追加します。これにより、Office の 64 ビット バージョンで作業しているユーザーがコモン コントロールの含まれるマクロ ファイルを作成、編集、また開くことができるようになります。
- mscomctl.ocx で使用されているコントロールのアクセシビリティを向上させます。
バージョン 1706: 7 月 19 日
バージョン 1706 (ビルド 8229.2103)
今回はExcel2013という古いバージョンを未だに利用している、私個人の戦いのお話です。
でも、Copilotからは1706の更新プログラムの話は一切出てきませんでした・・・なぜ???
実際のCopilotとのやり取り
利用者 → Copilot
Excel VBA 64bitでlistviewを使えるようにしたい。(前回からのつづきです) MSCOMCTL.OCX を
C:\Windows\SysWOW64\MSCOMCTL.OCX
に配置しました。 regsvr32 を使って ActiveX の登録も済みました。 最後のExcel を再起動も済みました ↓結果 Microsoft ListView Control 6.0 (MSCOMCTL.OCX)が 参照設定の一覧に表示されませんでした。 Excel VBA 32bitでの参照設定がどんなふうに表示されるのか知りたくて 64bitをアンインストール、32bitをインストールしました。 Microsoft ListView Control 6.0 (MSCOMCTL.OCX)の参照先が SysWOW64からSystem32に変わらないのはなぜ?
Copilot → 利用者
結論から言うと、 Excel を 64bit → 32bit に変更しても、
Microsoft ListView Control 6.0 (MSCOMCTL.OCX)の参照先が SysWOW64 のままなのは正常動作です。 これは Windows の DLL 管理構造と、WoW64(Windows on Windows 64)の仕組みによるものです。 整理すると、 ・SysWOW64 = 32bit 用DLLフォルダ
・System32 = 64bit 用DLLフォルダ です。 名前だけ見ると逆に見えますが、Windows の歴史的仕様でこうなっています。 つまり、 MSCOMCTL.OCX は 32bit ActiveX のため、 Excel 32bit は SysWOW64 の DLL を利用します。 System32 は 64bit DLL 用なので、
MSCOMCTL.OCX が移動することはありません。 つまり現在の状態は、 ・Excel 32bit
・SysWOW64 内の MSCOMCTL.OCX を利用 という正常状態です。 また、 Excel の参照設定は「自動でDLL場所を変更する仕組み」ではありません。 そのため、 64bit → 32bit に変更しても、 参照先が自動で切り替わるわけではありません。 今回のケースでは、 そもそも MSCOMCTL.OCX の 64bit 版が存在しないため、 SysWOW64 のものを使い続けるしかありません。 整理すると次のようになります。 Excel 32bit
→ SysWOW64 の MSCOMCTL.OCX を利用可能 Excel 64bit
→ MSCOMCTL.OCX 自体が利用不可 つまり、 System32 が使われることはありません。
この回答で一気に混乱した
ここ、かなりややこしいです。
普通に考えると、
System32
↓
32bit用
に見えます。
でも実際は逆。
これ、初心者が詰まる超有名ポイントです。
Windows最大級の初見殺し
整理するとこうです。
System32
実際は 64bit DLL 用フォルダ
SysWOW64
実際は 32bit DLL 用フォルダ
名前が完全に逆です。
最初、「なんで32bitにしたのにSysWOW64なの?」となります。
でもこれは、Windowsが昔のソフトとの互換性を維持するために、歴史的にこうなっているらしいです。
なぜExcel32bitでもSysWOW64なのか
Excel 32bit は、32bit アプリです。
つまり、32bit DLL しか読めません。
なので Windows が自動的に、SysWOW64 内の DLL を使わせます。
つまり、
Excel 32bit
↓
SysWOW64 を読む
これが正常動作です。
実際に理解できたこと
今回かなり大きかったです。
今までは、「なんとなくDLLを置いてる」状態でした。
でも今回は、
・32bit DLL
・64bit DLL
・Excel のビット数
・Windows のDLL管理
この関係がかなり見えてきました。
実際にやった作業
今回実際に行った作業はこちらです。
① Excel 64bit をアンインストール
まず現在の Office を削除。
② Excel 32bit をインストール
ここで環境を変更。
③ VBAエディタ確認
Alt + F11
④ MSCOMCTL.OCX の配置確認
配置先:
コード
C:\Windows\SysWOW64\MSCOMCTL.OCX
⑤ regsvr32 登録済み確認
管理者 PowerShell にて:
コード
regsvr32 mscomctl.ocx
⑥ 参照先確認
結果:
SysWOW64 のまま
ここで混乱。
でも実は正常だった
今回最大の収穫はこれです。
「変わっていない」=失敗ではなかった。
むしろ、SysWOW64 のままが正解だった。
ここがわかっただけでもかなり大きいです。
Copilotが優秀だった部分
今回かなり感じたのは、Copilot は「技術的な整理」が本当に強いです。
特に、
・Windows構造
・DLL管理
・32bit / 64bit の違い
この辺の説明はかなり助かりました。
人間だけで調べると、情報が散らばりすぎて地獄になります。
まとめ
今回は、Excel 64bit → 32bit に変更したのに、なぜ MSCOMCTL.OCX の参照先が SysWOW64 のままなのか?
ここをCopilotと一緒に整理しました。
初心者だと、
・System32
・SysWOW64
この名前だけで確実に混乱します。
でも実際は、
System32 = 64bit
SysWOW64 = 32bit
です。
つまり、Excel 32bit が SysWOW64 を使うのは正常。
ここが理解できたのはかなり大きかったです。
今回みたいに、AIに聞きながら一歩ずつ整理すると、難しい技術もかなり理解しやすくなります。
ただし、問題はまだ解決していません。
ListView はまだ表示されない。
ここから本格的に、本当に表示されないのか?を検証していきます。
かなり泥臭い検証ですが、実務の現場はこういうことが本当に多いです。
だからこそ、AIと一緒に検証できる力これがかなり重要になってきます。
リンク
ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順
Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話
仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果
ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント
Excel VBA初心者がChatGPTを使うと挫折しにくくなる理由
CopilotでExcel作業はどこまで効率化できる?実務で使ってみた結果
Copilotに仕事を任せてみた|メール・資料作成はここまで楽になる
Copilotが向いている人・向いていない人を実体験から整理してみた
ChatGPT・Copilot・Geminiに同じ仕事を頼んだら結果が全然違った
結局どれを使えばいい?目的別に生成AIを整理してみた【初心者向け】
初心者が最初にやるべき生成AI活用① ChatGPTで「長文を理解・整理する」読むのがしんどい人ほど効果が出る使い方
初心者が最初にやるべき生成AI活用②ChatGPTに「分からないことをそのまま相談する」使い方・聞き方を気にしない安心感
初心者が最初にやるべき生成AI活用③AIを「自分専用の調べ物係」にする使い方|検索に疲れた人ほど効果が出る
ChatGPTにブログ記事を“赤ペン先生”してもらったら修正力がすごかった話―書くのが苦手な人ほど使ってほしい文章改善―
CopilotでExcel作業手順書を一瞬で作る|引き継ぎ資料が秒で完成した話
Geminiでアイデアが枯れたときの発想復活法|何も思いつかないを脱出する使い方
ChatGPT・Copilot・Geminiをブレスト役で使い分ける実例|発想が加速した方法
CopilotでExcel集計→Word報告書を一気に作る実務フロー― 月次報告が“考えずに終わる”ようになった話 ―
大型Excel VBAはChat-GPTよりCopilotの方が作りやすい?実務で感じた変化
Copilotで会議議事録からToDo管理まで一気にやってみた実務フロー
Geminiで社内資料の画像を作ってみた|伝わらない資料が一瞬で変わった話
ChatGPTに流行りの「今まで私があなたをどう扱ってきたかを画像にして」を頼んでみた
ChatGPTのプロンプトを“自分用”に進化させる方法|頼み方で結果が激変する理由
初心者が最初にやりがちなプロンプトの失敗例と直し方
ChatGPTが急に賢くなる「前提条件」の渡し方-同じ質問なのに答えが変わるのはなぜ?-
プロンプトを毎回書かなくてよくなる“会話の残し方”
ChatGPTに「察してもらえない」と感じた時の原因と対処法|噛み合わない理由を実例で解説
AIに雑に投げても失敗しにくくなる頼み方のコツ|考えずに使っても噛み合う方法
プロンプトが思いつかない人のための“最初の一文”テンプレ集
ChatGPTを“相棒化”する人と、うまく使えない人の決定的な差
生成AIはどこまで使っていい?初心者が最初に知るべき法律の話
AI画像生成は違法?著作権で“やってはいけないこと”実例集
商用利用OK?NG?生成AIの利用規約を初心者向けに噛み砕く
AIで作った文章は誰のもの?著作権の考え方をやさしく解説
「知らなかった」では済まない?生成AIトラブル事例と回避法
ブログ・SNSでAI生成物を使うときの最低限の注意点まとめ
AIに頼りすぎて思考力が落ちた話|便利さの裏で起きたリアル失敗
AIの回答を信じて怒られた話|正しいはずが通用しなかった理由
ChatGPTにExcelマクロを直してもらったらコメントが消えた話|親切の落とし穴
Copilotの差分コードが分からなかった話|全コード出してもらう選択
ChatGPTにきれいな文章はいらなかった話|ぐちゃぐちゃでも伝わる
Copilotでクロス表を縦持ちデータに変換|実務VBA作成の流れ
Copilotでクロス表を縦持ちデータに変換|実務仕上げ編
Copilotでクロス表を縦持ちデータに変換|配列で高速化する
Copilotでクロス表を縦持ちデータに変換|項目変更に強い構造へ
Copilotでリストボックスにユニーク値を設定|実務VBA
Copilotでリストボックス並び替え対応|実務VBA
Copilotでリストボックス表示制御を追加|実務VBA
Copilotで階層連動コンボボックス作成|実務VBA
Copilotで列番号を動的管理|階層連動VBAの実務改善
Copilotで並び順統一とUI改善|階層連動VBA仕上げ
Copilotで高速化(配列化)|階層連動VBA最終仕上げ
CopilotにListViewを相談したら絶望した話|64bit VBAの壁
ListView強行突破|MSCOMCTL.OCX配置に成功した話
CopilotでListView登録に挑戦|regsvr32実行編(64bit VBA)
CopilotでListView確認|追加コントロール検証編(64bit VBA)
Copilotに全否定された件|ListView断念か?64bitの壁
CopilotでListView地獄を検証|32bit化で見えたWindowsの罠
CopilotでListView復活か?参照設定に見えた希望
Excel64bit版ListView問題の結論が見えた日
Excel64bit版ListView問題|2017年更新情報をCopilotへ再確認した結果
Excel64bitでListViewをあきらめて代替UIへ挑戦
Excel64bit代替UIに挑戦した結果…結局動かなかった話 ListViewの代替UI作戦が始まった
Excel64bit代替UIに挑戦した結果…hWndが取得できなかった理由 代替UI計画の本当の問題が見えてきた
Excel VBA WindowProcの壁 UserFormにウィンドウがなければWM_DROPFILES受取不可
Excel VBAでListBoxへドラッグ&ドロップできない理由 前回までのおさらい
Copilotはなぜ存在しない機能を提案したのか 前回ブログで生まれた新たな疑問
AIから正しいVBAコードを引き出す質問術