tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルwindows10でのコンポーネントの設定方法を教えてください
記事No16388
投稿日: 2018/01/27(Sat) 23:01
投稿者だめなワタシ
いつもお世話になっています。

パソコンの調子が悪くなったので、新しいパソコンを購入してVB6をインストールしました。
そこに今あるパソコンのプログラムを移植してソースを開いた処エラーが表示されました。
内容は
「MSHierarchicalFlexGridLib.MSHFlexGrid(コントロール Grid1) はロードされていません。」とあり
formを開くとMSHFlexGridの部分が空で表示されました。
ツールボックスの方にもMSHFlexGridのアイコンが見当たりません。
参照設定を見てみましたが、現行と同じものにチェックが付いています。
(ActiveX Data Objects 2.5 Library等)
コンポーネントの中に、現行にある「Hierrchical FlexGrid Control 6.0」がありません。
現行にある「Hierrchical FlexGrid Control 6.0」の場所をヒントにMSHFLXGD.OCXを検索したところ
C:\windows\sysWow64の中にありましたので参照ボタンで追加しようとしたのですが
「C:\windows\sysWow64\SHFLXGD.OCXはActiveXコンポーネントとして登録できません」とエラーになりました。

自分の知識では解決できません。
MSHFlexGridを使用できるようにするには、どうすれば良いですか。

現行のパソコン環境:windows7(32ビット版)  Visual Basic6.0(SP6)
購入したパソコン環境:windows10(64ビット版) Visual Basic6.0
※購入したパソコンにもSP6をインストールしていますがバージョン情報には表示されません。
 しかし、コンポーネントの方にはSP6のものがあるので多分インストールは成功していると思います。

宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: windows10でのコンポーネントの設定方法を教えてください
記事No16389
投稿日: 2018/01/28(Sun) 21:14
投稿者魔界の仮面弁士
> 現行のパソコン環境:windows7(32ビット版)  Visual Basic6.0(SP6)
> 購入したパソコン環境:windows10(64ビット版) Visual Basic6.0

VB6 のアイコンを右クリックし、「管理者として実行」を選択した後で、
C:\Windows\sysWow64\SHFLXGD.OCX を「コンポーネントの追加」してみてください。


それでもうまくいかない場合には、コマンドプロンプト(管理者実行)より
 regsvr32 C:\Windows\sysWow64\SHFLXGD.OCX
のコマンドを試してみてください。

[ツリー表示へ]
タイトルRe^2: windows10でのコンポーネントの設定方法を教えてください
記事No16391
投稿日: 2018/02/03(Sat) 08:37
投稿者だめなワタシ
魔界の仮面弁士 様
お返事、ありがとうございます。
後、返事が遅れて申し訳ありませんでした。

上記の手順を実施したところ、コンポーネントに
「Microsoft Hierachical FlexGrid control 6.0(OLEDB)」が追加されましたので
それを選択して、適用またはOKボタンを押下したところ
「C:\windows\sysWow64\SHFLXGD.OCXは読み込めません。」とエラーが表示されました。

宜しくお願い致します。

[ツリー表示へ]
タイトルRe^3: windows10でのコンポーネントの設定方法を教えてください
記事No16392
投稿日: 2018/02/05(Mon) 13:51
投稿者魔界の仮面弁士
>>> 「C:\windows\sysWow64\SHFLXGD.OCXはActiveXコンポーネントとして登録できません」とエラーになりました。
> 「C:\windows\sysWow64\SHFLXGD.OCXは読み込めません。」とエラーが表示されました。

SHFLXGD.OCX ではなく MSHFLXGD.OCX のはずなのですが、
本当に M が抜け落ちて表示されてしまうのでしょうか?



(1) MShflxgd.oca が存在していた場合には、MShflxgd.old.oca にリネームします。
 ※この oca ファイルは後で自動生成されます。 http://bit.ly/2EETKrt

(2) VB6 を管理者モードで実行し、「標準 EXE」のプロジェクトを新規に作成します。
 ※レジストリ HKEY_CLASSES_ROOT へのアクセスが発生するため、管理者権限が必要です。

(3) コンポーネントの追加(参照設定ではない)で
 「Microsoft Hierachical FlexGrid Control 6.0 (SP6) (OLEDB)」
 を追加し、正常に動作するかどうかを確認します。


上記 3 のコンポーネントが表示されない、もしくは SP6 の表記が無い場合には、
インストールに失敗している可能性があります。その場合には VB6 のインストールと
Service Pack 6 のインストールを、もう一度やりなおしてみてください。


ところで、どのバージョンの Windows 10 をお使いでしょうか?

[ツリー表示へ]
タイトルRe^4: windows10でのコンポーネントの設定方法を教えてください
記事No16393
投稿日: 2018/02/10(Sat) 16:24
投稿者だめなワタシ
魔界の仮面弁士 様
何度もお返事ありがとうございます。

>SHFLXGD.OCX ではなく MSHFLXGD.OCX のはずなのですが
 これは、私の記述ミスで"M"はありました。

>どのバージョンの Windows 10 をお使いでしょうか?
 Windows10 PROが入っています。(コンパネのシステム画面で確認しました。)

ここからまた、申し訳ありませんが対応のご伝授をお願いします。
一度、Visual studio6.0をアンインストールしようとコンパネのプログラムを見るとVisual studio6.0がありませんでした。
しかたがないので、その状態でVisual studio6.0を再度インストールしたところ、エラーが表示されました。
確か、最初の時もエラーが表示されましたがvb6が使えるしと思い、放置してました。(エラーの内容は覚えていません)
今回のエラー以下の通りです。
「C:\PProgram Files〜\valec.exeを登録するためのDCOMユーザアカウントが作成できませんでした。」

宜しくお願いします。

[ツリー表示へ]
タイトルRe^5: windows10でのコンポーネントの設定方法を教えてください
記事No16397
投稿日: 2018/02/13(Tue) 16:42
投稿者魔界の仮面弁士
> アンインストールしようとコンパネのプログラムを見るとVisual studio6.0がありませんでした。

こちらを試してみてください。
Microsoft のサイトからは削除されてしまったようなので、Internet Archive からのリンクです。

KB248697: Visual Studio と MSDN ライブラリを手動で削除する方法
http://bit.ly/KB248697JP



> 今回のエラー以下の通りです。
> 「C:\PProgram Files〜\valec.exeを登録するためのDCOMユーザアカウントが作成できませんでした。」

PProgram……一文字多いのはさておき、ユーザー設定に
問題があるかも知れないので、PC に別の管理者アカウントを作成し、
そちらでログオンしてインストールすることをお奨めします。


併せて、下記も参照してみてください。

MSDN Forum: VB6.0のwindows10へのセットアップ
https://social.msdn.microsoft.com/Forums/ja-JP/db66e64d-ad01-429e-8635-659df56e0a37/

過去ログ1396: VISUAL STUDIO6.0 インストールエラー
http://hanatyan.sakura.ne.jp/logbbs1/wforum.cgi?mode=allread&no=1396&page=0

KB257413: BUG: "Setup Was Unable to Create a DCOM User Account" Error Message in Visual Studio 6.0
http://bit.ly/KB257413


>> どのバージョンの Windows 10 をお使いでしょうか?
>  Windows10 PROが入っています。(コンパネのシステム画面で確認しました。)

それは「バージョン」ではなく「エディション」ですね。
バージョン情報は、winver.exe で確認できます。
現行バージョンは ver1709 です。

[ツリー表示へ]
タイトルRe^6: windows10でのコンポーネントの設定方法を教えてください
記事No16411
投稿日: 2018/02/17(Sat) 21:32
投稿者だめなワタシ
魔界の仮面弁士 様
いつも大変お世話になっております。
参考資料ありがとうございました。
で、以下の様になりました。


1.削除について
 案内されたサイトを参考に以下の手順で削除しました。
 (1)MSDNは、コンパネのプログラムから削除(先週の段階で削除済み)
 (2)Visual Studio6.0は手順7の該当フォルダを削除しました。
    手順9のレジストリは、該当するものがありませんでした。

2.再インストール
  案内されたサイトを参考に、管理者で実行しましたが
  結果は同じで「DCOMユーザアカウントが作成できませんでした。」とエラーになりました。
  それを無視して、SP6までインストールしました。

パソコンを再起動後、問題のソースを開いたところ、ツールボックスにMSHFlexGridのアイコンがあり、コンポーネントにも
「Hierrchical FlexGrid Control 6.0」ありにチェックが入っていましたがフォームを開くと
MSHFlexGridの部分が表示されませんでした。
仕方がないのでフォームにMSHFlexGridを追加しようとした処、以下のエラーが表示されました。
「このコンポーネントのライセンス情報が見つかりません。」

このエラーメッセージをネットで検索すると、OCXがレジストリに登録されていない為とありましたので、
見よう見まねで、以下のコマンドを投入しましたが、かえっておかしくなりました。
(パソコンの再起動で元に戻りました。)

以下の手順でコマンド投入しました。
1.画面下にある「ここに入力して検索」にcommandと入力して、Ctrl + shift + Enterで実行
2.表示されたコマンドプロンプトから「regsvr32 /u MSHFLXGD.OCX」を投入
  続いて「regsvr32 /i MSHFLXGD.OCX」を投入

これ以外にも、ランタイム再頒布可能パッケージ (vbrun60sp6.exe)も実行してみました。

OCXをレジストリに登録するには、どうすれば良いですか?
何度も聞いてばかりで申し訳ありませんが、宜しくお願い致します。

---------------------------------------------
PS
Windows10のバージョンは「1607」でした。

[ツリー表示へ]
タイトルRe^7: windows10でのコンポーネントの設定方法を教えてください
記事No16412
投稿日: 2018/02/18(Sun) 14:10
投稿者魔界の仮面弁士
>> ユーザー設定に問題があるかも知れないので、PC に別の管理者アカウントを作成し、
>> そちらでログオンしてインストールすることをお奨めします。
> 案内されたサイトを参考に、管理者で実行しましたが
> 結果は同じで「DCOMユーザアカウントが作成できませんでした。」とエラーになりました。
インストールに使ったアカウントは、新規に追加された管理者アカウントなのですよね?
http://www.dell.com/support/article/jp/ja/jpbsd1/sln303810/?lang=ja


> 「Hierrchical FlexGrid Control 6.0」ありにチェックが
誤:Hierrchical
正:Hierarchical


> フォームを開くとMSHFlexGridの部分が表示されませんでした。
ActiveX コントロールの読み込みに失敗した場合、そのフォームにあったコントロールは
PictureBox に置き換わるようになっています。そのまま保存すると上書きされてしまいますので
元のプロジェクトを破損させてしまわないようご注意ください。

また、VB6 はユーザーアカウント制御(UAC)が搭載される前にリリースされた製品で
あることから、レジストリアクセスに際して制限があるようです。(特に 64bit OS)
そのため VB6 開発環境は常に、 No16389 で示したように
「管理者として実行」で起動した方が無難です。

ところで、MSHFlexGrid 以外の ActiveX コントロールについても
同様の事象が発生しているのでしょうか。 新規プロジェクトを作成して、
そこに他のコントロールを追加することはできますか?
https://support.microsoft.com/ja-jp/help/412577


> 「このコンポーネントのライセンス情報が見つかりません。」
ランタイム(実行時)だけで、デザインタイム(開発時)ライセンスが無い場合などに、
このメッセージが表示されることになります。コンパイル済みの exe を利用するだけならば
デザインタイムライセンスは不要なのですが、開発時には必須となるものです。

開発時ライセンスを必要としないタイプの ocx もあるのですが、
mshflxgd.ocx の場合は必要としている、ということでしょうね。
http://www.naboki.net/access/psychic/psychic-02.html
http://hanatyan.sakura.ne.jp/logbbs/wforum.cgi?mode=allread&no=5169&page=0


ライセンス情報不足のエラーメッセージですが、開発環境を入れる前にランタイムが先に
インストールされていたり、VB6 をインストールしていない状態で Visual Studio .NET を
インストールした場合などに、そうした状態に陥る可能性があるようです。

[VB5] ライセンス情報が書き込まれない場合の対処方法
https://support.microsoft.com/ja-jp/help/411156

[PRB] Visual Basic 6.0 のコントロールを Visual Studio .NET で使用するとエラーが発生する
https://support.microsoft.com/ja-jp/help/318597/


今回の場合は、DCOM の登録で躓いているようなので、その影響でライセンス登録に
失敗しているのかも知れませんが…本当に因果関係があるのかどうかはまでは分かりません。

ただ、今回お使いの Visual Basic 6.0 が Enterprise Edition なのであれば、
DCOM のエラーは No16397 で紹介した URL の通り、インストールオプションで
Microsoft Visual Studio Analyzer (MSVSA) をインストールしないようにすれば
回避できる可能性があるようです。Professional Edition 以下の場合は関係なさそうですが。

もしくは DCOM ユーザーアカウントを手動で用意することもできます。MSVSA が必要な場合は
Enterprise 版インストール時の DCOM エラーはそのまま無視してセットアップした後で、
Windows にローカルユーザーアカウントを追加し、dcomcnfg.exe の "DCOM の構成" で
MSVSA の実行ユーザーアカウント(ID タブ)にそのアカウントを手動で割り当てるようにします。


それともう一つ。Visual Studio 6.0 のインストーラーには、Microsoft Java Virtual Machine の
ランタイムが含まれていますが、これは主に Visual J++ 6.0 向けのものですし、
Java VM としてはかなり古いバージョンとなっています。Visual Basic 6.0 では不要なものなので
もしもインストール時に [Microsoft Virtual Machine for Java] の更新ダイアログが表示された
場合には、更新のチェックボックスを外して、インストール処理をバイパスしてください。
(後期版のパッケージだと、Java VM が同梱されていないものもあるようです)


> OCXがレジストリに登録されていない為とありました
開発時ライセンスは、ファイルあるいはレジストリもしくは特定のインターフェイスを
通じて提供されるものです。Web アプリ上でロードされる場合などはファイル配置が用いられ、
VB6 開発環境でロードされる際にはレジストリ上のエントリーが利用されているはず。


> 続いて「regsvr32 /i MSHFLXGD.OCX」を投入
regsvr32 で登録されるのは実行のために必要な情報であり、開発用に必要な情報とは異なります。
また、regsvr32 には 32bit 版と 64bit 版があることにもご注意ください。

64bit OS から呼び出す場合、
C:\Windows\System32\regsvr32.exe は 64bit の ActiveX コントロール向け、
C:\Windows\SysWOW64\regsvr32.exe は 32bit の ActiveX コントロール向けです。
https://support.microsoft.com/ja-jp/help/282747/


> これ以外にも、ランタイム再頒布可能パッケージ (vbrun60sp6.exe)も実行してみました。
ランタイムとデザインタイムは異なります。また、デザインタイムのライセンスは
開発ツールの購入者のみが利用可能なものであり、ランタイムと違って再頒布が
許可されたものではありません。基本的には開発ツールを正しくインストールする事が必要です。


> Windows10のバージョンは「1607」でした。

現在お使いの 1607 はサポート期限切れ間近の OS であることにご注意ください。
…といっても、VB6 を継続利用している時点で、そもそも無意味な話かも知れませんが。


Windows 10 の更新周期を "半期チャンネル (ターゲット指定)" / "Semi-Annual Channel(Targeted)" に
指定している場合、昨年10月下旬以降、自動的に 1709 に更新されるようになっています。

Windows 10 の "半期チャンネル" / "Semi-Annual Channel" を指定している場合は、
先月下旬以降で 1709 が公開されていたと思います。

ただし更新プログラムのインストールを遅延させることもできるので、
その場合は一つ前の 1703 となっている可能性があります。1607 については
さらにもう一つ前のバージョンですね。


☆2014/04/08 Windows XP with SP3 / VB6 with SP6 の延長サポート終了
 2015/01/13 Windows 7 / Windows Server 2008 with SP2 / 2008 R2 のメインストリームサポート終了
 2015/07/14 Windows Server 2003 with SP2 / 2003 R2 with SP2 の延長サポート終了
 2016/01/12 Windows 8 のサポート終了
 2016/04/12 Visual Studio 2005 のサポート終了
 2017/04/11 Windows Vista SP2 の延長サポート終了
 2017/05/09 Windows 10 ver1507 の延長サポート終了
 2017/10/10 Windows 10 ver1511 (November Update) の延長サポート終了
 2018/01/09 Windows 8.1 / Windows Server 2012 / 2012 R2 のメインストリームサポート終了
  《今ココ》
★2018/04/10 Windows 10 ver1607 (Anniversary Update) / VS2008 with SP1 の延長サポート終了
 2018/10/09 Windows 10 ver1703 (Creators Update) の延長サポート終了
 2019/04/09 Windows 10 ver1709 (Fall Creators Update) の延長サポート終了
 2020/01/14 Windows 7 with SP1 / Windows Server 2008 with SP2 / 2008 R2 with SP2 の延長サポート終了
 2020/07/14 Visual Studio 2010 with SP1 の延長サポート終了
 2022/01/11 Windows Server 2016 のメインストリーム / VS LightSwitch 2011 の延長サポート終了
 2023/01/10 Windows 8.1 / Windows Server 2012 / 2012 R2 / VS2012 with SP4 の延長サポート終了
 2024/04/09 Visual Studio 2013 Update 5 の延長サポート終了
 2025/10/14 Visual Studio 2015 の延長サポート終了
 2027/01/11 Windows Windows Server 2016 の延長サポート終了
 2027/04/13 Visual Studio 2017 の延長サポート終了


なお、Long-Term Servicing Branch (LTSB) 版の Windows 10 を購入している場合には、
これとは異なるライセンスポリシーが適用されます。LTSB の場合には
メインストリームサポートが 2020/10/13 まで、延長サポートが 2025/10/14 までです。
とはいえ LTSB 版は特定業態向けの特殊な OS ですし、今回は関係なさそうですね。

[ツリー表示へ]
タイトルRe^8: windows10でのコンポーネントの設定方法を教えてください
記事No16413
投稿日: 2018/02/19(Mon) 05:54
投稿者だめなワタシ
魔界の仮面弁士  様
いつもありがとうございます。
また週末に試してみて、ご報告いたします。

[ツリー表示へ]
タイトルRe^9: windows10でのコンポーネントの設定方法を教えてください
記事No16423
投稿日: 2018/02/24(Sat) 21:31
投稿者だめなワタシ
魔界の仮面弁士 様
いつも大変お世話になっております。
返事が遅れまして申し訳ありませんでした。

1.管理者のユーザを作成して、インストールを行いましたが結果は同じで
 「DCOMユーザアカウントが作成できませんでした」のエラーになりました。

2.>他のコントロールを追加することはできますか?
   以下のコントロールを試してみました。
    ・データグリッド(DataGrid Control 6.0)
      コンポーネントで選択時、「レジストリへのアクセスでエラーが発生しました」とエラーメッセージが表示されましたが
      コントロールにデータグリッドのアイコンが追加され、それを選択してFormにも設定できました。

    ・フレキシブルグルッド(FlexGrid Control 6.0)
      こちらは、コンポーネント、Form設定共に問題ありませんでした。

    ・DBリスト(Data Bound List Controls 6.0)
      データグリッドと同じでした。

3.ライセンス情報が書き込まれない場合の対処方法
  参照先にあったツールを使用しましたが、うまく行きませんでした。
  で、手動で登録(前回のコマンドプロンプトから実行)しようとしましたが
  今回もうまくいきませんでした。
  投入手順
  (1)コマンドプロンプト起動
    (2)cd \windows\syswow64
    (3)regsvr32 /i C:\windows\sysWow64\SHFLXGD.OCX
    結果:「〜OCXの読み込みに失敗しました。
    バイナリが指定されたパスに格納されていることを確認するかバイナリまたは依存.DLLファイルに問題ないかを調べてください
        指定されたモジュールは存在しません」とエラーメッセージが表示されました。

4.
  >> これ以外にも、ランタイム再頒布可能パッケージ (vbrun60sp6.exe)も実行してみました。
      >ランタイムとデザインタイムは異なります。また、デザインタイムのライセンスは
      >開発ツールの購入者のみが利用可能なものであり、ランタイムと違って再頒布が
      >許可されたものではありません。基本的には開発ツールを正しくインストールする事が必要です。
   
  このコメントを見まして、もしやと思い現行のパソコンでexeを作成し、コピーして実行した処、問題なく画面が表示されました。
  (グリッド部分も問題なく表示されました。)

問題は何も解決していませんが、とりあえずこのパソコン(windows10)でもプログラムは使用できるようになりました。

魔界の仮面弁士 様
こんなダメなわたしの為に、貴重な時間を使って相談に乗ってもらってありがとうございました。

[ツリー表示へ]