ActiveX コントロールを初期化しようとしています。

Last-modified: 2012-03-12 (月) 12:29:36
amazon.gif

バーコードを貼り付けたら

バーコードコントロールを貼り付けてマクロも予想通りに動いたのだが一度保存してそのマクロを再度開いたら、

このアプリケーションは、安全でない可能性のある ActiveX コントロールを初期化しようとしています。
このドキュメントの提供元が信頼できる場合は、[はい] をクリックしてください。コントロールはドキュメントの設定を使用して初期化されます。
とメッセージがでてくる。

 やること概略

EXCELで設定する
ツール ---> オプション ---> セキュリティ -> マクロのセキュリティ で低に設定して保存する。

 

または、レジストリを修正する

  • やること ↓

1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。regedit と入力し、[OK] をクリックします。
Vistaでは、スタートボタンの中の「検索の開始」に"regedit"と入力する。
2. 次のレジストリ サブキーを展開します。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common
3. [Common] を右クリックし、[新規] をポイントし、[キー] をクリックします。
4. Security と入力し、Enter キーを押して新しいサブキーの名前を確定します。
5. [Security] を右クリックし、[新規] をポイントし、[DWORD 値] をクリックします。
6. UFIControls と入力し、Enter キーを押して値の名前を確定します。
7. [UFIControls] をダブルクリックします。
8. [値のデータ] ボックスに 1 と入力し、[OK] をクリックします。

注 : UFIControls に使用できる設定は、1 ~ 6 です。安全性が最も高い設定は 4 です。デフォルトの設定は 6 で、安全性が最も低い設定は 1 です。この DWORD 値に有効な値の詳細については、「ActiveX コンポーネント用の UFI コントロール設定に関する情報」を参照してください。
9. レジストリ エディタを終了します。

  • (ここまで) ↑
 
amazon.gif

ページの内容(Office XP または Office 2003 ドキュメントを開くときに ActiveXコントロールにアクセス許可を設定するように求められる)

  •  以下は、マイクロソフトから転載

Office XP または Office 2003 ドキュメントを開くときに ActiveX コントロールにアクセス許可を設定するように求められる
対象製品
文書番号 : 827742
最終更新日 : 2007年2月20日
リビジョン : 9.0
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 (http://support.microsoft.com/kb/256986/) Microsoft Windows レジストリの説明
目次
現象
原因
回避策
ActiveX コンポーネント用の UFI コントロール設定に関する情報
レジストリ設定を UFIControls = 1 に変更する
Forms3 および ActiveX 初期化 (Office 2003 および Office XP)
値のデータについて
詳細
関連情報
現象
この資料の対象製品として記載されている Microsoft Office プログラムでドキュメントを開くときに、ActiveX コントロールの読み込みまたは持続データの保持を許可するために、ActiveX コントロールに対してアクセス許可を設定するように求めるメッセージが表示されることがあります。ActiveX コントロールによっては、まったく読み込まれないものもあります。

また、ActiveX コントロールを含む Office ドキュメントを Microsoft SharePoint Team Services Web サイトなどの他のプログラムにインポートすると、次のようなエラー メッセージが表示されることがあります。
このアプリケーションは、安全でない可能性のある ActiveX コントロールを初期化しようとしています。このドキュメントの提供元が信頼できる場合は、[はい] をクリックしてください。コントロールはドキュメントの設定を使用して初期化されます。
[いいえ] をクリックすると、ActiveX コントロールは読み込まれません。[はい] をクリックすると、ActiveX コントロールが読み込まれます。

先頭へ戻る
原因
この問題は、初期化に危険が伴う (UFI) と判定された ActiveX コントロールが含まれているドキュメントを開く場合に発生します。Office プログラムのデフォルトの設定では、安全に初期化できる (SFI) という判定のない ActiveX コントロールが読み込まれることや、有効にされることはありません。また、この問題は、Office プログラムに付属の ActiveX コントロールにも該当します。また、Winsock は SFI コントロールとして登録されていません。こうした理由から、IObjectSafety を実装していない ActiveX コントロールは UFI コントロールとして処理されます。また、レジストリで適切なコンポーネント カテゴリを判定していない ActiveX コントロールも、UFI コントロールとして処理されます。

先頭へ戻る
回避策
注 : 提供元が不明なドキュメントに含まれている ActiveX コントロールは、そのコントロールに関連付けられたデータの使用が実際に安全であるかどうかの保証がないため、実行しないことをお勧めします。ただし、ドキュメントの配布元およびドキュメントを送信した個人または会社が信頼できる場合は、コントロールを読み込み、そのコントロールで持続データの使用を許可することができます。

警告 : レジストリエディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティングシステムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。
この問題を回避し、Office プログラムでの ActiveX コンポーネントの処理方法を変更するには、UFIControls キーをレジストリに追加して、Office プログラムの動作を変更します。これを行う方法の詳細については、「レジストリ設定を UFIControls = 1 に変更する」を参照してください。

先頭へ戻る
ActiveX コンポーネント用の UFI コントロール設定に関する情報
コントロールが SFI と判定される場合、Office プログラムの動作は以下のとおりです。
• UFIControls の値が 1 (最低レベルの安全性)、3 または 5 の場合 : ActiveX コントロールが非セーフ モードで読み込まれます (確認のメッセージは表示されません)。ドキュメントの持続プロパティ値が設定されている場合はその値を使用して、それ以外の場合はデフォルトのプロパティ (InitNew) を使用して読み込まれます。
• UFIControls の値が 2、4 (最高レベルの安全性) または 6 (デフォルトの設定) の場合 : ActiveX コントロールがセーフモードで読み込まれます (確認のメッセージは表示されません)。ドキュメントの持続プロパティ値が設定されている場合はその値を使用して、それ以外の場合はデフォルトのプロパティ (InitNew) を使用して読み込まれます。
UFIControls = 4 に設定すると、Office プログラムが強制的に UFI コントロールをデフォルトのプロパティを使用して読み込むため、UFIControls = 4 が安全性の最も高い設定です。しかし、UFI の新しい動作に関するユーザーの混乱を避けるために、UFI コントロールがドキュメントの持続プロパティを使用して読み込まれる、UFIControls = 6 がデフォルト値に設定されています。

注 : HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common\Security レジストリ キーの下のすべてのサブキーには、対応するサブキーが次のレジストリ キーの下にもあります。
• HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Office\Common\Security
• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\Security
Office XP では、UFI コントロールによって読み込みの前にダイアログ ボックスが表示されますが、Office プログラムでは、UFI コントロールはメッセージの表示なしに初期化されます。Office XP の場合と同じようにファイルを表示するには、次のいずれかの方法を使用します。
• 警告メッセージで、[はい] をクリックし、続行します。
• レジストリ設定を UFIControls = 1 に変更します。
• ActiveX コントロールの作成者に連絡して、ActiveX コントロールが SFI と判定されるようにしてもらいます。
管理者は、カスタム インストール ウィザード (CIW) を使用して、デフォルト値を設定できます。CIW の詳細については、次のマイクロソフト Web サイトで Office リソース キットを参照してください。

Office 2003
http://www.microsoft.com/japan/office/ork/2003/tools/BoxA03.htm (http://www.microsoft.com/japan/office/ork/2003/tools/BoxA03.htm)
Office XP
http://www.microsoft.com/japan/office/ork/appndx/appa04.asp (http://www.microsoft.com/japan/office/ork/appndx/appa04.asp)

先頭へ戻る
レジストリ設定を UFIControls = 1 に変更する

レジストリを修正し、UFIControl サブキーを追加するには、以下の手順を実行します。

  • やること ↓

1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。regedit と入力し、[OK] をクリックします。
Vistaでは、スタートボタンの中の「検索の開始」に"regedit"と入力する。
2. 次のレジストリ サブキーを展開します。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common
3. [Common] を右クリックし、[新規] をポイントし、[キー] をクリックします。
4. Security と入力し、Enter キーを押して新しいサブキーの名前を確定します。
5. [Security] を右クリックし、[新規] をポイントし、[DWORD 値] をクリックします。
6. UFIControls と入力し、Enter キーを押して値の名前を確定します。
7. [UFIControls] をダブルクリックします。
8. [値のデータ] ボックスに 1 と入力し、[OK] をクリックします。

注 : UFIControls に使用できる設定は、1 ~ 6 です。安全性が最も高い設定は 4 です。デフォルトの設定は 6 で、安全性が最も低い設定は 1 です。この DWORD 値に有効な値の詳細については、「ActiveX コンポーネント用の UFI コントロール設定に関する情報」を参照してください。
9. レジストリ エディタを終了します。

  • (ここまで) ↑

Forms3 および ActiveX 初期化 (Office 2003 および Office XP)
共通のセキュリティ レジストリ キーを使用することにより、Forms3 をサポートするすべての Office 2003 および Office XP プログラムについて、Forms3 ActiveX 初期化セキュリティが設定されるように指定することができます。キーの設定が、2 または 3 の場合、Forms3 フォームの読み込み方法を確認するメッセージがユーザーに表示されます。このメッセージは、1 つのプログラム内の 1 つのセッションごとに 1 回のみ表示されます。レジストリ キーの場所は次のとおりです。
HKEY_CURRENT_USER\Software\Microsoft\VBA\Security
レジストリまたはポリシー ノードでは、LoadControlsInForms という名前の値に、以下の値のデータを設定することができます。各値に対応する動作については後述します。
値の名前 LoadControlsInForms
値の種類 REG_DWORD
値のデータ [ 1 | 2 | 3 | 4 ]
値のデータについて
値のデータの説明は次のとおりです。
• 1 を使用すると、セーフ モードおよび非セーフ モードをサポートする UFI または SFI 判定のコントロールでは、コントロールが非セーフモードで読み込まれます。セーフ モード設定のみをサポートする SFI 判定のコントロールの場合、コントロールがセーフ モードで読み込まれます。
• 2 (デフォルトの設定) を使用すると、UFI 判定のコントロールでは、確認のメッセージで [はい] と答えた場合、コントロールが非セーフモードで読み込まれます。[いいえ] と答えた場合、デフォルトのプロパティを使用して読み込まれます。セーフ モードと非セーフモードの両方をサポートする SFI コントロールでは、[はい] と答えた場合、コントロールは非セーフ モードで読み込まれます。[いいえ] と答えた場合、コントロールはセーフ モードを使用して読み込まれます。SFI コントロールでサポートできるのがセーフモードのみの場合、コントロールはセーフ モードで読み込まれます。
• 3 を使用すると、UFI 判定のコントロールでは、確認のメッセージで [はい] と答えた場合、コントロールが非セーフ モードで読み込まれます。[いいえ] と答えた場合、コントロールがデフォルトのプロパティを使用して読み込まれます。SFI コントロールに関しては、セーフ モードで読み込まれます。
• 4 を使用すると、UFI 判定のコントロールでは、コントロールのデフォルトのプロパティを使用して読み込まれます。SFI コントロールに関しては、セーフ モードで読み込まれます (最も安全なモードと判断されます)。

先頭へ戻る
詳細
ActiveX コントロールで発生する問題の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
817112 (http://support.microsoft.com/kb/817112/) [OFF2003] ActiveX コントロールが正常に読み込まれない、または機能しない

ActiveX コントロールはプログラムであり、データをレジストリかコントロール自体のいずれかに保存できます。ActiveX コントロールは、Microsoft Visual Basic for Applications (VBA) マクロに類似しています。相違点は、ActiveX コントロールは特殊なファイルの種類にコンパイルされること、および、Microsoft Word 2002 や Microsoft Excel 2002 などの ActiveX コントロールをサポートできるプログラムでホストできることです。

ActiveX コントロールを使用できるように、コントロール リンク参照が Office ドキュメントに埋め込まれています。ドキュメントが開かれるときに ActiveX コントロールが有効にされた場合にのみ、Office プログラムで ActiveX コントロール リンク参照を新しいバージョンのドキュメントに保存または移動できます。ActiveX が無効にされた場合、それ以降のドキュメントの保存では、そのバージョンのドキュメントはリンク参照なしで保存されます (ActiveX コントロールは削除されます)。ドキュメントのコンテンツの一部またはすべての表示にコントロールが必要な場合、この動作により不都合が生じます。

一部のファイル形式では、ActiveX コントロール リンクがサポートされていません。そのため、ActiveX コントロールを有効にしてドキュメントを開いても、ActiveX コントロールがサポートされない形式には ActiveX コントロールリンクは保存されません。

注 : プログラムで ActiveX コントロールを実行し、持続データを使用する場合は、自己の責任において実行してください。

先頭へ戻る
関連情報
ActiveX コントロールの安全な使用方法については、次のマイクロソフト Web サイトを参照してください。
http://msdn.microsoft.com/library/default.asp?url=/workshop/components/activex/safety.asp (http://msdn.microsoft.com/library/default.asp?url=/workshop/components/activex/safety.asp)
ActiveX コントロールの詳細については、次のマイクロソフト Web サイトで Office リソース キットを参照してください。

Office 2003
http://www.microsoft.com/japan/office/ork/2003/default.htm (http://www.microsoft.com/japan/office/ork/2003/default.htm)
Office XP
http://www.microsoft.com/japan/office/ork/defaultxp.mspx (http://www.microsoft.com/japan/office/ork/defaultxp.mspx)

amazon.gif

 参考

 サイト内リンク

VBAマクロ関係