Visual Basic 6 sp6 がインストール失敗するとき’25

2000年前後一世を風靡した Visual Basic 、まだMSDNでは配布され、ランタイムの実行もwin11サポートされています。 初期のwin11に Visual Basic 6 sp6 はインストール済みですが、新規に別win11にインストールが必要になりインストールしてみました。そのメモです。

MSDNよりエンタープライズ版をDLしインストール。終了時にエラー( ダンマリ状態だったかも )が出ましたが、IDE自体は起動でき Build もOK。win10でもこんなにすんなりいかなかった記憶があります。これでよかったのでしょうか?

VB6の最終Services pack である SP6 をインストールします。インストーラは現在通常公開されていないようです。保存していた公開当時のものをインストールしますが失敗します。管理者権限、XP-SP3互換モードでもダメ。

users\AppData/Loca/temp にも Windows\Temp にも インベントビューア にもどこにもログが残らずヒント無し。

SP6 は MSDN にはまだ公開されており、そちらでインストールを試みます。こちらは細かくバージョンが分かれているみたいです。しかし解消せず。

いろいろ見ていくと、VB6本体の実行ファイル類はインストールされていますが、本体インストール時に最後にエラーが発生したため、Windowsの管理上は未インストールになっているようですね。困った状態です。

一時アンインストール

VB6インストール済みPCから以下レジストリエントリと file をコピーすると、インストール扱いにすることができました。

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Visual Basic 6.0 Enterprise Edition (jpn)
  • C:\Program Files (x86)\Microsoft Visual Studio\VB98\Setup\1041\setup.stf

しかしこの状態で SP6 を試しにインストールしましたが同じ結果でした。仕方なくアンインストールします。

他WEB記事を拝見かすると以下のオプションでインストールするようです。

SP6のインストール3

これで SP6 が正しく入りました。一見インストールできたように見えるのはトラップですね。

SP6 以降のリリースされた Windows Update を手動実行します。まだダウンロードセンターにおいてあるようです。

  • VB60SP6-KB3096896-x86-JPN.msi ※2024版がでているようです。こちらはローカルドライブから実行のみ可でした。

上記は、VB60SP6-KB2708437-x86-JPN.msi の内容も含まれているようです。

  • VisualBasic6-KB896559-v1-JPN.exe もあるようです。mscomctl.ocx comctl32.ocx  が更新されると記載されていますが、Visual Studio下の.ocxのpropertyを見る限りは変わってないように見えます。検索するとofficeに入っているのが最新みたいです。しかし SysinternalsSuitevmapユーティリティ を見る限りIDEにロードされる .ocx は旧い方ですね。

以上でセットアップが完了しました。

なおIDE初回起動時は、管理者権限で一度起動したほうがいいようです。

VB6からExeclを呼出すとき、CLSIDは各バージョンで同じか?

VB6アプリを再ビルドしたいと相談があり調べました。ExeclをVB6から操作するとき、COMコンポーネント( Windows上で世界でユニークなオブジェクトを示すID:CLSIDとそのインターフェイスをレジストリに登録することで呼出すソフトウェアコンポーネント) として Execl.exe を登録して呼出すようです。※イマドキではもっと簡単に Python でも可能なようです。

Dim execlApp   As Excel.Application 
Dim execlBook As Excel.Workbook 
Dim execlSheet As Excel.Worksheet

Set execlApp = CreateObject("Excel.Application")


これをBuildする場合、Execlの本体が必要なようです。Execlはバージョン毎に収録先が異なります。Execl2024の場合、設定は以下のようになります。

紐づけられるCOMコンポーネントはバージョンが明示されています。.VBP をみると、

CLSID00020430-0000-0000-C000-000000000046 のようです。内部バージョンは 2.0

アプリが複数のWindows PCで実行されると、そのPC毎に Execl の格納先とバージョンは異なるハズです。通常この設定を行うと、アプリ実行時、このパス固定参照されるか、レジストリ上に登録されている同じコンポーネントが呼び出されます。EXECLバージョン毎にCLSIDは同じなのでしょうか? .VBP で管理されるライブラリバージョンが一致しなくても動作するのでしょうか?


オリジナルの参照設定と .VBP をみると、Execl 2007 (内部version12)でした。CLSIDは同じですが、内部バージョンは1.6 でした。


試しに Execl 2003(内部version11) を設定してみた結果です。CLSIDは同じ、内部バージョンは1.5


以下動作結果です。

PCBuild時のExecl設定呼出されたExecl
Win11 Execl2003 & 2024同居20032024
Win11 Execl2003 & 2024同居20072024
Win11 Execl2003 & 2024同居20242024
Win11 Execl2003のみ20032003
Win11 Execl2003のみ20072003
Win11 Execl2003のみ20242003

動作原理をまとめると、

  • CLSIDの一致はみるが、バージョンは照合しない。
  • 上位互換性はあり。
  • 複数Execlがインストールされている場合は、新しいExeclの方が呼び出される。
  • VB6 IDE用のExeclバージョンは問われない。

ただし、新しいExeclで追加されたオブジェクト、methodは使えないのでしょうから、開発時のExeclに近いバージョンを使った方が無難と思います。( methodインターフェイスがかわるとmethodのCLSIDが変わるが、VBAオブジェクトヘルプにもmethod毎に対応バージョンまでは明記されておらず、それらを全部調べるのは現実的ではないため )

しかしながら、.NETアプリでありながら、COMコンポーネントあわせもつEXEを作れるんですね。

Windowsで削除or圧縮してよさげな場所

クリーンアップでも消えず、弊方がファイルがたまってよく削除するフォルダの覚書です。削除によってトラブルが発生する可能性はゼロではないため、十分に試してください。

パスコメント
C:\MSOCacheMS-Offiecの何かインストラの模様、気持ち圧縮Folderにしておくと無難。
C:\ProgramData\Package Cache.NET系パッケージのinstallerの模様。win10->11時に削除TRY中。win10->11時に削除TRY中。
C:\Windows\Tempほぼほぼ支障なし
C:\Windows\Downloaded Installations気持ち圧縮Folderにしておくと無難。
C:\Windows\InstallerUninstallしないソフトなら削除していい。気持ち圧縮Folderにしておくと無難。
C:\Windows\SoftwareDistribution気持ち圧縮Folderにしておくと無難。
C:\Windows\SoftwareDistribution\Download古いものなら削除しても大体よさげ。圧縮Folderにしておくと無難。
C:\Users\*\AppData\Local\tempほぼほぼ支障なし
C:\Users\*\AppData\Local\Package Cache削除して様子見中
C:\Users\*\AppData\Local\Packages古いものなら削除しても大体よさげ。圧縮Folderにしておくと無難。
C:\Users\*\manabu_yamamoto.renesas\e2_installer\cache削除して様子見中

Windows修復でネットワークドライブが認識されないとき

Windows修復ディスクからBACKUPしたドライブイメージを回復するとき、ネットワークドライブが認識されない事象がありました。その対処メモです。

ネットワークドライブを「net use 接続先ドライブレター ネットワークドライブパス」手動接続します。

しかし 今回はWindows修復メニュー「イメージから修復」を選んでも、ネットワークドライブのディスクイメージを認識しませんでした。以前は普通にできていたときおくしているのですが、、、仕方ないので修復PCのOSを入れない方のディスクにコピーします。

HP EliteDesk 800 G1 Win10→ Win11 UPDATE メモ【Win11初期設定ですべきこと】

そろそろWin10のままのPCのWin11化が必要です。対象機種は HP EliteDesk 800 G1 。CPUは、core i 4世代なのでWin11にできません。各種ソフトを入れなおすのは面倒です。その実施Memoです。

PCハードは別途入手が必要です。ヒューレッドパッカード:HPといえば元々はUNIXマシンの大御所です。 COMPAQを合併して今のような形になりました。昔はHP UNIXマシンでHP-UXを使うこともあり敬意を表してHP DESKTOP PCを選定しています。HP EliteDesk 800 G1 は PCie が4スロットあり全部使用、HDDは3つ使用、SDカードスロットルもよく使います。新品は予算が厳しいため、HP EliteDesk 800 G5 あたりが core i 9世代 で、数年は使えそうです。

G800 G5 のHDDは外し、G800 G1 のHDDを抜いて G800 G5 に全部差します。

PCを起動します。デバイスドライバは標準で大体あたるので、Win10で起動します。ディスプレイ解像度がリセットされるので、そこだけ変更します。

Windows11InstallationAssistant.exe をダウンロードして実行します。これで自動的にアップデートできます。これでインストールソフトを維持したままWIn11にできました。初回は「Win11と互換性がない」と怒られますが、何回か実行していると通過しました。

エクスプローラメニューが簡易表示は業務使用に耐えないので変更します。要Win再起動。

ドライブ二重表示回避の設定ももどってしまうので、もう一度実施します。

ドライブ二重表示も再設定が必要みたいです。

MS OfficeはPCが変わるとライセンス認証が必要となるので、再認証します。パッケージ版は問題ないですが、他のライセンスはライセンス規約を確認する必要があります。旧PCハードの添付品ならHDDを移行したことでOKとなると思います。以前の使用者がインストールされたものはNGにだと思います。

win10でスタートピンに設定していたWin10アプリグループにまとめられてしまっています。Win10アプリグループから移す必要があります。

Windows11の不便な点を処置しています。

Win11 のペイントは最低最悪です。操作性、潜在バグ、お節介盛沢山。アンインストールします。旧ペイント paint classic をインストールします。インストール済みの他Win11 PCでは以下のようにしていました。どうやってインストールしたのでしようか?

‘25.8月現在、MS Storeにおいてあった記憶がありましたが、’25.8月現在は消えています。個別サイトで ClassicPaint-1.1-setup.exe が 公開されているようです。前者は英語表記でしたが、後者は日本語表記になるようです。

ちなみにmspaint1.exe を単品コピーすると、「新しいドキュメントを作成できません」とエラーになります。

Win11 のメモ帳も使いにくなっています。MACタブのように対応したかったようですがメモ帳には不要です。

スタートメニューの「おすすめ」はデッドスペースです。履歴は非表示にできても「おすすめ」表示自体は非表示にできません。以前調べましたが、まだ非表示モードはサポートされないようですね。スタートメニューのサイズも変更できるようにしてほしいものです。

win11からエクスプローラから ディスクのクリーンアップ がなくなっています。Win11にUPDATEすると、Win10のバックアップが残ります。この削除は ディスクのクリーンアップ を直接起動して行う模様です。以下の場所から呼び出せます。

画面キャプチャは Alt + PrintScreen で一発で撮るのが効率的です。Win11から範囲を指定するようになりましたが効率が落ちます。たぶんMACのマネでしょう。しかしWindowでは以下のように無効にできるのでユーザフレンドリーです。

以上、Windowsそのものの設定でした。モバイル端末が個人ユーザの主流になっている今日、Windowsは仕事で使う方が多いかとおもいますす。上記のような設定に一撃で切り替えられるなど素晴らしいですね。

以下はその他の設定です。


CS+のデーモンプロセスがエラーを吐くようになりました。

以下の処置で解消しました。

新規Win11をインストールしたPCのみに発生しています。これは様子見します。

再インストールが必要なようです。Win10と同様に Shift + 再起動、修復起動モードで 「7.署名無しドライバのインストール許可」を選択します。fastboot コマンドで android端末と接続できなくなったので、端末仕様かと焦りました。

fastbootドライバの再インストールは、以下のサイトから入れました。

Win10を入れなおし、調査用、高リスク作業用に仕立てなおします。HP EliteDesk 800 G1 は BIOS設定で、IDEを有効無効化できるため、WinXpも動かせます。計測設備についているPCなど、どうしてもリアルWinXpが必要になる場合もありますので。