AIと戦って、あなたの人生のリスク診断 >>

エクセルを起動して知人が作成したマクロを使用しようとすると以下のような謎のメッセージがでてマクロの一部機能が動作しません。(このメッセージが指す部分が原因だと思います)

このアプリケーションは安全ではない可能性のある、ActiveXコントロールを初期化しようとしています。このファイルの提供元が信頼できる場合は「ok」をクリックします。コントロールは現在のワークスペースの設定で初期化されます。

いったいどういう意味でしょうか?ちなみにこのマクロは他のPCでは機能します。エクセル2003を使用しています。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんばんは。



あまり、概念的な話をここで言ってもラチは開かないように思いますから、現実、そのActive X コントロールは何をどう使っているか、っていうことじゃないかしらね。

早い話、それは何か分かっていればよいのですが。

VB6辺りで、自家製でなんていう人もいるかもしれませんが、他のPCで問題ないのを、そのPCだけダメ出しもありえないわけです。しかし、まがりなりにも、マクロの提供側としては、「署名」を入れていない以上は、一応、Active X の名称や性質ぐらいは、提示する義務はあると思いますが、そこらはどうかなっているのでしょうね。

もう、こういうのは、私たちのような外野ではなく、当事者どうしの話のような気もします。ある程度のマクロのレベルの達している人は、Office XP以降で、こういう似たような話は経験しているわけでしょうから、後は、当事者間で、一応の確認をしていただくしか手はないような気がします。もちろん、信頼するで、「OK」もありえますが。ただ、そういう表示をなくしてほしいというリクエストは、お金の掛かる問題だから、それは個人間では、置いておくしかありません。
    • good
    • 0

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


http://support.microsoft.com/kb/827742/ja

んー、簡単に言うと・・・・
あなたは、「ドアにカードキー差し込み口とカメラがついていて、家の中から監視できるようになっている家」に住んでいます。
カードキー差し込み口にはあらかじめいくつかの情報が記録されているので、カードキーを持って居る人は
素通りできます。それ以外の人は、あなたが審査して家の中に入れるかどうかを判断しなければ成りません

ただ、信頼できるカードキー自体の入手がそれなりに難しかったりするんで
初めて貴方の家に来る人は、喩え貴方の友人さんであってもカードキーを持っていないので貴方の許可を得ないと家に入れません。

泥棒でも何でも見境無くいれるわけにはいきませんが、
(この辺はポリシー次第。別な人の家によっては警告がない場合、オープンで泥棒でも誰でも歓迎っていう風になっていることがある)
喩えカードキーを持っていない人でも貴方が友人であると確認できる人に対して許可を与えてあげることで友人さんはあなたの家に入ることが出来るのです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QActiveX コントロールの初期化

Excel2010のフォームにOCXコンポーネントを追加し、Excelを起動すると
「このアプリケーションは、安全でない可能性のある ActiveX コントロールを
初期化しようとしています。
このドキュメントの提供元が信頼できる場合は、[はい] をクリックしてください。
コントロールはドキュメントの設定を使用して初期化されます。 」
というメッセージが表示されます。
メッセージを非表示にする方法をないでしょうか?

Office2003では、「Forms3 および ActiveX 初期化」で対応できました。
http://support.microsoft.com/kb/827742/ja

Office2010で、同様の方法で設定しても非表示になりませんでした。
Office2010では、設定方法が変わってしまったのでしょうか?

Aベストアンサー

環境によるのかもしれませんね。
OWC11.DLLのSpreadsheetコントロールで試してみましたが
HKEY_CURRENT_USER\Software\Microsoft\VBA\Securityキーの設定で対応できました。
参考まで。

(環境)
OS:WindowsXP pro sp3
EXCEL:2010 14.0.5128.5000(32ビット)
#他バージョンとの共存あり(97,2000,2003,2007)

Q安全でない可能性のあるActiveXコントロールを初期化

WinXP(SP2導入済み)にOffice2003を導入しました。
他のアプリケーションでは問題ないのですが、Wordを起動させると
「このアプリケーションは、安全でない可能性のあるActiveXコントロールを初期化しようとしています。このドキュメントの提供元が信頼できる場合は「はい」・・・・」といったメッセージが表示されます。
はい、いいえのどちらを選んでも使用できるのですが、いちいちメッセージが表示されてしまいます。
なお、特定のファイルを開く時だけでなく、プログラムメニューから起動させる時(白紙のテンプレートで作業開始する場合)も表示されます。

Aベストアンサー

>ActiveXコントロールの削除
おそらくWORDのVBAを起動してから該当のコントロールを削除することになりますが、初心者には難しいと思います。

QEXCELでactivexコントロールを挿入できな

お世話になります。
環境はWindows8.1+EXCEL2010です。
タイトルの通り、ワークシート上にactivexコントロールのラベルやテキストボックスなどを挿入しようとすると「オブジェクトを挿入できません」というエラーが表示されてしまいます。
月並みな表現ですが、まさに昨日まで特に問題なく使用できていたため、原因がわからず非常に困惑しております。
ちなみに昨日まではVBAにてワークシート上に正常に配置できていたラベルコントロールが、本日では「実行時エラー1004: オブジェクトを挿入できません」というエラーを表示して正常に配置できなくなってしまい、異常が発覚した次第です。"Microsoft Forms 2.0 Object Library"への参照設定がなされていることは確認しています。
他に確認すべき点などございましたら、ぜひご教授いただければ幸いです。
よろしくお願いいたします。

Aベストアンサー

当方2014/12/10の夜に更新プログラムをインストール後、
同じ現象が発生しており、解決いたしましたので、参考になればと思い回答いたします。
Windows7 32bit
Excel2013


(当方が解決した方法)
Cドライブ内を「*.exd」で検索し、検出されたファイルをすべて削除します。



(exdファイルについて)
Excel上で、ActiveXコントロールを挿入した際、キャッシュのために一時フォルダなどに作成されます。


(考えられる原因)
更新プログラムの中に脆弱性を解決するプログラムがいくつか含まれております。
ActiveXコントロールに関係したセキュリティホールがあったと予測できます。
そのうえで考えると、更新適用前のOfficeで作られたexdファイルを使われるとセキュリティ上まずいので、使わせないようにしたのではと予測できます。


(参考にしたサイト)
https://social.technet.microsoft.com/Forums/office/en-US/b8f0af82-0bb8-4799-aa62-1dbcbc5b7742/excel-2010-macros-does-not-work-after-updates-9dec2014?forum=excel

当方2014/12/10の夜に更新プログラムをインストール後、
同じ現象が発生しており、解決いたしましたので、参考になればと思い回答いたします。
Windows7 32bit
Excel2013


(当方が解決した方法)
Cドライブ内を「*.exd」で検索し、検出されたファイルをすべて削除します。



(exdファイルについて)
Excel上で、ActiveXコントロールを挿入した際、キャッシュのために一時フォルダなどに作成されます。


(考えられる原因)
更新プログラムの中に脆弱性を解決するプログラムがいくつか含まれております。
Acti...続きを読む

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QVBAによる動画再生

お世話になります。

エクセルのVBAを使って,動画を再生するマクロを組みました。以下のページを参考に作りましたが,エクセルのファイルを立ち上げると,自動的に動画再生が始まってしまいます。再生開始ボタンをクリックしたときに動画再生をしたいのですが,どうすればいいでしょうか。

皆様のお力をお貸しください。使っているのはエクセル2010,Windows8です。

よろしくお願いします。

参考URL
http://ch3cooh.jp/excel-2003/play-movie-using-excel-vba/

Aベストアンサー

停止ボタンも作成し、以下のマクロを登録してみてください。

Sub CloseMovie()
WindowsMediaPlayer1.URL = ""
End Sub


Excelを保存して終了する際は、必ず上記の停止ボタンを押して終了するようにしてみてください。

QActiveXコントロールを用いたマクロが他PCのExcelで動作しない

環境
 PC1:Windows7 SP1(32bit),Excel2010
 PC2:Windows7 SP1(32bit),Excel2010

ActiveXコントロールをシートに貼り付けたマクロをPC1で開発し、
xlsmで保存後、PC2にてブックを開くと、
Workbook_Openイベントにてセルの値をStringの変数に設定する※
ところでエラーが表示されます。
「アプリケーション定義またはオブジェクト定義のエラーです。」

※実際の記述:str = Sheets("Sheet2").Cells(1, 1)

また以下の挙動をします。
・イミディエイトで”?Sheets("Sheet2").Cells(1, 1)”と打つと空文字が表示され、
 Outlookが起動。(1,1)セルに値が入っていてもいなくても結果は同一。
・ブック全てのActiveXコントロールオブジェクト名が変わる。
  (例)名前ボックス:btnEnter
     プロパティの(オブジェクト名):CommandButton21
・オブジェクト名を元のbtnEnterに戻そうとしても、
 「名前が適切ではありません」と表示され戻せない。
・オブジェクトをDelキーで削除するとExcelが落ちる。
・”Projectのコンパイル”がソースの先頭行を選択しエラーになる。
 「アプリケーション定義またはオブジェクト定義のエラーです。」
・PC2で保存したブックをPC1で開くのは問題ないが、
 PC1で上書き保存するとまたPC2でエラーが発生する。

ググって
http://support2.microsoft.com/kb/3025036/ja
かと思いましたが、exdファイルを削除しても変わらないのと、
オブジェクトの挿入は可能なので違うと思っています。

以下の手順をPC2で行うとオブジェクト名は元に戻りエラーも発生しなくなりました。
1.シートを同ブックにコピーし、xlsで保存。
2.Excelを開き直す。
3.コピー元のシート削除と、シート名を元に戻してxlsmで保存。

今の所エラーは発生しなくなりましたが、ブック保存する処理があることと、
原因が不明なままであることから、端末を変えるとまた発生しそうで心配です。
エラーが発生する状態になっても、名前ボックスの名称を用いて、
処理を続行させる方法はないでしょうか。

環境
 PC1:Windows7 SP1(32bit),Excel2010
 PC2:Windows7 SP1(32bit),Excel2010

ActiveXコントロールをシートに貼り付けたマクロをPC1で開発し、
xlsmで保存後、PC2にてブックを開くと、
Workbook_Openイベントにてセルの値をStringの変数に設定する※
ところでエラーが表示されます。
「アプリケーション定義またはオブジェクト定義のエラーです。」

※実際の記述:str = Sheets("Sheet2").Cells(1, 1)

また以下の挙動をします。
・イミディエイトで”?Sheets("Sheet2").Cells(1, 1)”と...続きを読む

Aベストアンサー

12月のOfficeのセキュリティアップデートの適用PCで発生します。
また、適用PC・未適用PC間で開くと色々と。orz
一旦おかしくなると元に戻すのは・・・?
http://answers.microsoft.com/ja-jp/office/forum/office_2010-excel/%E7%84%A1%E5%8A%B9%E3%81%AA%E3%82%AA%E3%83%96/fc2bc484-6237-4bd9-90e4-faa9d35c92c0

the_microsoft_excel_support_team_blog を読んでみてください。

QEXCELマクロのEXE化

EXCELで作成したマクロを、EXEの実行形式に変換できるのでしょうか?
フリーのソフトで変換できるとありがたいのですが、何かいいソフトはないでしょうか?

Aベストアンサー

EXEにはならないとおもいますよ。
他の方法をオススメします。

(EXEがいい場合)
(1)VisualStuidioのVB等でコーディングをしてEXEにする。

(EXCELを残したい場合)
(2)他のエクセルファイルのマクロから実行する。

(EXCELが立ち上がったときに起動したい場合)
(3)AUTO_OPENでコーディングする。

などが一般的かと。

QShell関数で起動したメディアプレーヤーを終了したい。

以前このコーナーで質問して教えて頂いたShell関数でメディアプレーヤーを起動できました。(以下にそのコーディングを記載しました)
今度は起動したメディアプレーヤーをVBから終了する方法が知りたいのですが教えて頂けませんか。
Shell ("C:\Program Files\Windows Media Player\wmplayer.exe /1 G:\TEST.wma ,vbMinimizedFocus")
宜しくお願いします。

Aベストアンサー

オートメーションではなくコントロールです。

プロジェクトのカスタムコントロールにWindows MediaPlayerを登録。
フォームにWindows MediaPlayerを配置。


Private Sub Command1_Click()
MediaPlayer1.Open "G:\TEST.wma"
MediaPlayer1.Play
End Sub

Private Sub Command2_Click()
MediaPlayer1.Stop
End Sub

# 試す環境がない

「好きに制御」の詳細はこちら
http://msdn.microsoft.com/library/ja/wmplay/mmp_sdk/windowsmediaplayercontrolversion64scriptingreference.asp

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。


人気Q&Aランキング