VB6ランタイムを使用したVBAでちょっとトラブったので、メモです。

 

【使用環境】

・Windows10-64ビット

・Office2016

・MSCOMM32.OCXほか

 

【症状】

VBAでシリアル通信を、「MSCOMM32」で行おうとした場合に、

MSCOMM32のレジストリ登録済みで、コントロールにアイコンが表示されるものの、

フォームに貼り付けようとすると、以下のメッセージが出て貼り付けられない。

”サブジェクトは指定された操作に対して信頼されていません。”のメッセージが表示される。

 

【原因】

ActiveXコントロールがセキュリティ上、キラービットにより停止されているため。

 

【対処法①】マイクロソフトサポートページより引用

(1)対象のランタイムのCLSID(クラスID)を、レジストリエディタ(regedit)上の

 『HKEY_CLASS_ROOT』で検索をかけ、その中で、下記に合致するものを特定する。

 『HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility』。

 

例:”MSCOMM32”で検索し合致したのは、以下。

{648A5600-2C6E-101B-82B6-000000000014}

 

(2)『Compatibility Flags』の値を0x00000400から

0x00000000に変更する。

 

【対処法②】本題です。

しかし対処法①では、Windows8.1、10では解決できませんでした。

 

そこで、いろいろな方法を試していたところ、

とあるフリーソフトで変更すると、使用可能になりました。

それは、『ActiveX Compatibility Manager v1.00』(http://www.nirsoft.net/utils/acm.html)

というActiveXの有効化/無効化ツールです。

※日本語化のパッチも同ページの下のほうに掲載あり。

 

:無効、 緑:有効。 『ファイル説明』で検索も可能。

 

選択後、ツールバー上の緑のボタンをクリックすると、

赤→緑に変わり、使えるようになります。

 

再度、レジストリエディタで確認すると、0x00000000に変更されている

のを確認できました。

 

こちらのソフト、2004年のものでC++で作られてるようですが、

なぜレジストリエディタと挙動が異なるのかは、わかりません。

わかる方、ぜひご教示お待ちしております。

 

(※不詳なActiveXコントロールの不用意な有効化はお勧めしません。念のため。)

今朝の大阪の地震で、ブロック塀の倒壊により

亡くなられた方について報道がされています。

 

小学校の映像で3点ほど気になったんですが、

映し出されたブロック塀、主筋が通し筋になって無いようなぁ・・・

 

ブロック塀の高さについても、建基法省令や告示等などから、

「(壁を挟んだ各地盤に高低差がある場合)低いほうの地盤面からの高さ」

ということになると、通学路の路面上から2.2mを

はるかに超えているようなぁ・・・

 

また、仮に基礎からの高さで行きますと、(原則)1.2m以上

の高さの場合、壁の倒壊を防ぐ『控壁』が必要なのに、

それが無さそうなぁ・・・

 

何だかかんだで、ブロック塀って

やっぱり危ないな~と、改めて感じました。

(通学路上の安全は原則程度は確保してほしいものです)

 

基準等の改正、通達があるといいなぁ・・・

本年度の、ガス験ことガス主任技術者の

受験受付が始まりやした。。。

 

今年で3度目のお受験です。

まぁ何といいますか、3度目の何とやら~

といきたいところです。

 

無事、取れたとしても・・・というところは

あるんですけどね。

 

(消費器具とその周辺は別として)設備の中でも、ガスは

電気よりかは内管をそうはいじくり回しませんし、

保安業務の要となる年次法定点検でも、電気では

主技者として参加することはあってもガスは・・・

 

それにガスの場合は選任の可能性がとても低いこともあって、

なぜに受けるのかと問われると、「ただただ自己研鑽を・・・」と、

か細い声で~。

 

いやでも、やっぱり勉強になりますし、

事業者さん側の苦労も少しは知ることができますし、

設計資料も理解が前よりは・・・といったところです。

 

ここ2,3年、毎年勉強させてもらってますが、

そろそろ良い結果を実らせたいでござる。