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

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

A 回答 (5件)

当方2014/12/10の夜に更新プログラムをインストール後、


同じ現象が発生しており、解決いたしましたので、参考になればと思い回答いたします。
Windows7 32bit
Excel2013


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



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


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


(参考にしたサイト)
https://social.technet.microsoft.com/Forums/offi …
    • good
    • 5
この回答へのお礼

ご回答ありがとうございます。
いただいた内容にもとづき、Cドライブ中の.exdファイルをすべて削除したところ、無事ActiveXコントロールの挿入ができるようになりました。
更新プログラムが原因であったこともわかり、また対処方法も簡潔で、大変助かりました。
本当にありがとうございました。

お礼日時:2014/12/11 11:46

緊急!更新プログラムインストールしたら


ActiveXコントロールが動作しなくなったらアンインストール

excel

Excel2007がKB2596927、
Excel2010がKB2553154、
Excel2013がKB2726958をアンインストール

当方2010は確認できました。

参考URL:http://blog.systemjp.net/entry/2014/12/11/014030
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
直前に適用された更新プログラムが原因だったのですね。
WindowsUpdateの自動更新は便利だし、更新も必要なものとは理解していますが、今回のような事があると、どうも自動更新は止めようかと考えざるを得ません。
ともあれ、本当に助かりました。
まことにありがとうございました。

お礼日時:2014/12/11 11:43

私のところでも同じ現象が発生していました。


環境は Windows8.1 + Excel2013。

対処した方法は、先日のWindowsUpdateの Excelに関連する更新プログラムをアンインストールです。
アンインストールした更新プログラムは
 KB2726958

これをアンインストール後、再起動したら動くようになりました。
(ActiveXのボタンも押せるようになりました)

Excelのバージョンによってアンインストールする更新プログラムが異なるみたいですが...
開発してて急に動かなくなると仕事にならないので、参考になればいいのですが。

参考URL:http://blogs.technet.com/b/office_sustained_engi …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
まさに青天の霹靂というか、新人の頃を彷彿とさせるような状況でしたもので、正直驚きました。
が、皆様からのご回答でバックグラウンドで適用されていた更新プログラムが原因とわかり、ほっとしております。
参考URLまでご教授いただき、大変参考になりました。
誠にありがとうございました。

お礼日時:2014/12/11 11:38

当方も同じ状況です(回答でなくごめんなさい)。



Windows7+Excel2013ですが、同じようにこれまで挿入出来ていたActivXコントロールが挿入できず、過去に作成してあったActivXのボタンもクリック出来ない状況です。

昨夜Windowsアップデートがあったことが関係しているような気がしますが、、、

システムの復元という手もあるのですが、その前に少し皆さんからの知恵をいただければ、と待っています。
私からもよろしくお願いいたします。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
とりあえず私だけではないことがわかっただけでも、ほっとしました。
当方の環境は、他の方からいただいたご回答で無事解決しましたので、回答者様の環境でも解決されていることをお祈りします。

お礼日時:2014/12/11 11:29

2010では、「開発」(「開発」が表示されていない場合、「Excelのオプション」リボン上で右クリック「リボンのユーザー設定」「○○のオプション」「リボンのユーザー設定」「開発」チェックボックスをオンに「○○のオプション」「OK」で「開発」を表示)「コントロール」グループ「挿入」「フォームコントロール」「チェックボックス(フォームコントロール)」ワークシート上でドラッグ→ができないのですか?



「Office 2013 ドキュメントにいくつかのスクリプト可能な ActiveX コントロールを挿入できません」
参考URLをOffice2010で準用できませんか?

参考URL:http://support.microsoft.com/kb/2793374
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご回答の前半部に関して、まさにその通りでチェックボックスはおろか、ラベルもボタンもできない状態です。
後半部の参考URLでいただいた内容はウェブブラウザーコントロールなどに関してのようにお見受けしますが、実はウェブブラウザーコントロールの挿入は問題なくできるので、今回の件とはちょっと違うように思われます。
情報いただき、ありがとうございました。

お礼日時:2014/12/11 11:34

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q子クラスのオブジェクトに親クラスのオブジェクトを代入

開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが
子クラスのオブジェクトに、親クラスのオブジェクトを代入する方法が分からなくて困っています><。
ソースコードで説明すると
class Car
{
}

class Bike:Car
{
}

Car oya = new Car();
Bike kodomo = new Car();

kodomo = oya;//これはエラーになる

というかんじです。
これが代入できるような方法はないでしょうか?
かなり抽象的な質問ですが、よろしければ御回答をお願いします。

Aベストアンサー

kodomo = oya
これはあくまで、ポインタ的なものがコピーされるだけです。(インスタンスのクローン(複製)ができるわけではない)
質問を見る限りその辺りが理解できていないと思います。
class Car
{
 public int a;
}
Car oya = new Car();
oya.a = 10;
Car kodomo = new Car();
kodomo = oya;
kodomo.a = 100;

とすると
oya.aも100になります。(kodomoとoyaが同じインスタンスだから)
※ちなみにclassではなくstructにすれば、oyaとkodomoは別物になります。


>もしかして、親クラスはオブジェクトをあまり作らずに、できるだけ子クラスで作ったほうがいいんでしょうか?
それをするなら、そもそもCarとBikeの定義をわける必要が無かったということになります。

一つの方法として
以下のようにコンストラクタに親クラスを渡してメンバをコピーする事もできるでしょう。
class Car
{
 public int a;
}
class Bike : Car
{
 public Bike(Car car)
 {
   a = car.a;
 }
}
Car oya = new Car();
Bike kodomo = new Bike(oya);

kodomo = oya
これはあくまで、ポインタ的なものがコピーされるだけです。(インスタンスのクローン(複製)ができるわけではない)
質問を見る限りその辺りが理解できていないと思います。
class Car
{
 public int a;
}
Car oya = new Car();
oya.a = 10;
Car kodomo = new Car();
kodomo = oya;
kodomo.a = 100;

とすると
oya.aも100になります。(kodomoとoyaが同じインスタンスだから)
※ちなみにclassではなくstructにすれば、oyaとkodomoは別物になります。


>もしかして、親クラスはオブジ...続きを読む

QVisual studio c# android オブジェクト参照がオブジェクトインスタンスに...

すみません、文字数制限でタイトルをしっかり書けませんでした。
Visual studio 2015で c# android のプロジェクトを作ろうとすると「オブジェクト参照がオブジェクトインスタンスに設定されていません」と表示されプロジェクトの作成に失敗してしまいます。
どのようにすれば解決できるでしょうか?

Aベストアンサー

Xamarinがインストールされてないとか。

Qaccessのこのオブジェクトに値を代入することはできません エラー

accessでデータベース参照システムを作成しているのですが、このオブジェクトに値を代入することはできません
というエラーがでています。

色々過去ログを調べたのですが、私の内容と該当しそうなのがみつかりませんでした。

TABLE_A
親番号 子番号 項目a... b....
3 , 1 , xxxxxxxxxxx
3 , 2 , xxxxxxxxxxxx

TABLE_AとリンクしているフォームXを開きます。
開いたあと、filterをかけています。(例 filter : 親番号 = 3)
そのフォームには、コントロールソースがいくつもあります。

編集ロックを解除して、データベースの内容を上書きしています。
新規作成時には、子番号という、テーブルのキー情報にだけ値を入れて(既存のmax値+1)、その他の項目を全てnullにして、データの新規登録を可能にさせています。
(例 : 3, 3 , xxxxxxxxのデータが作成される)

ここまでは動作しています。

やりたいことは、親番号4という、TABLE_Aにない情報で、上記で、同じくフォームxを開いたあと、新規登録を可能にしたいのですが、
子番号のコントロールボックス(テキストボックス)に、1という新規番号をいれようとしたら、エラーになります。
内容は、{このオブジェクトに値を代入することはできません}です。

この解決方法がなかなかみつかりません。

説明が難しいので伝わりにくいかもしれません。
なにかありましたら、説明させて頂きます。

フォームは、
DoCmd.OpenForm stDocName, , , stLink
で開いています。

accessでデータベース参照システムを作成しているのですが、このオブジェクトに値を代入することはできません
というエラーがでています。

色々過去ログを調べたのですが、私の内容と該当しそうなのがみつかりませんでした。

TABLE_A
親番号 子番号 項目a... b....
3 , 1 , xxxxxxxxxxx
3 , 2 , xxxxxxxxxxxx

TABLE_AとリンクしているフォームXを開きます。
開いたあと、filterをかけています。(例 filter : 親番号 = 3)
そのフォームには、コントロールソースがいくつもあり...続きを読む

Aベストアンサー

どのように設定しているのかわかりませんが、

>子番号という、テーブルのキー情報
>にだけ値を入れて(既存のmax値+1)、

ならば、3の次は4しか入らないのでしょうし、
入れられないでしょう。

以下は一つの案です。以下のコードは
DAOです。

まず、フォームの子番号のフィールドの
入力の縛りを解除します。

TABLE_子番号というテーブル数値型
の子番号というフィールドをつくる。
主キーは無し。このテーブルの子番号の
値を更新させて参照用に使います。

次の段階も考え方はいろいろです。
親番号の取得時に子番号をリセット
するか、子番号のリセットを単独で
するかです。

親番号の取得をどのようにしているのか
わかりませんから、ここでは子番号の
リセット、番号の取得をボタンクリック
にしておきます。

'子番号のリセット:
Private Sub 子番号リセット_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb

Set rs = db.OpenRecordset("TABLE_子番号", dbOpenDynaset)
rs.Edit
rs!子番号 = 0
rs.Update
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

'子番号の取得表示:
Private Sub 子番号入力_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb

Set rs = db.OpenRecordset("TABLE_子番号", dbOpenDynaset)
If rs>Recordcount > 0 Then
rs.Edit
rs!子番号 = rs!子番号 + 1
rs.Update
Me![子番号] = rs!子番号
'TABLE_子番号のセットをすれば
'上記のIfの行と以下のEnd Ifまで
'は必要ない。
Else
rs.AddNew
rs!子番号 = 1
rs.Update
rs.MoveFirst
rs.Edit
rs!子番号 = 0
rs.Update
rs.Edit
rs!子番号 = rs!子番号 + 1
rs.Update
Me![子番号] = rs!子番号
End If
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

TABLE_子番号のセット:
TABLE_子番号は作ったままだとレコードがない
とAccessが文句を言うので子番号に適当に
数値を入れて一回レコードを登録します。
その後、レコードの数値を0にしておきます。
これで完了です。これを準備した場合は
上記のコードでいらないところは削るか
コメントアウトしてください。

二つのプロシージャはクリックイベントに
なっていますが、関数にして適当にアレンジ
してプログラムの中で使ってください。

質問の状況だと、レコードの上書きだとか、
TABLE_Aには主キーが無い様子だとか、
親番号の取得も手動であるとか、何か
漠然とした内容ですが、大丈夫なので
しょうか。

誰かがオールインワンのコードを書けば
適当に選択してください。
以上です。

どのように設定しているのかわかりませんが、

>子番号という、テーブルのキー情報
>にだけ値を入れて(既存のmax値+1)、

ならば、3の次は4しか入らないのでしょうし、
入れられないでしょう。

以下は一つの案です。以下のコードは
DAOです。

まず、フォームの子番号のフィールドの
入力の縛りを解除します。

TABLE_子番号というテーブル数値型
の子番号というフィールドをつくる。
主キーは無し。このテーブルの子番号の
値を更新させて参照用に使います。

次の段階も考え方はいろいろで...続きを読む

QVBA 実行時エラー1004 rangeメソッドは

始めまして、VBA初心者です。

現在VBAプログラムを使って、サイトに自動ログイン出来るようにコードを作成しているのですが、『実行時エラー’1004’rangeメソッドは失敗しました。’_global’オブジェクト』とメッセージが出て、実行できません。

デバックをすると以下の11行目で黄色のバーが出ていました。いろいろと調べてみましたが、原因がわからずに止まってしまいました。

どなかた分かる方がいらっしゃいましたら教えて頂けますようにお願い致します。

コードは下記です。

Sub 無料スペースログイン()

Set ObjIE = CreateObject("InternetExplorer.Application")
ObjIE.Visible = True
ObjIE.Navigate "http://mnnf.jp/signup/"

Do While ObjIE.ReadyState <> 4
Do While ObjIE.Busy = True
Loop
Loop


For Each Obj In ObjIE.Document.getElementsByTagName("input")

If Obj.Name = "mail" Then
ObjIE.Document.getElementsByName("mail")(0).Value = Range("A1").Value
Else
If Obj.Name = "password" Then
ObjIE.Document.getElementsByName("password")(0).Value = Range("B1").Value
Else
Exit For
If Obj.alt = "新規無料登録" Then
Obj.Click
Exit For
End If
End If
End If
Next
End Sub

始めまして、VBA初心者です。

現在VBAプログラムを使って、サイトに自動ログイン出来るようにコードを作成しているのですが、『実行時エラー’1004’rangeメソッドは失敗しました。’_global’オブジェクト』とメッセージが出て、実行できません。

デバックをすると以下の11行目で黄色のバーが出ていました。いろいろと調べてみましたが、原因がわからずに止まってしまいました。

どなかた分かる方がいらっしゃいましたら教えて頂けますようにお願い致します。

コードは下記です。

Sub 無料スペースログイン()

...続きを読む

Aベストアンサー

私の環境では普通に動きますね

内容も問題ないようですが、念のため
Range("A1").Value
この部分を入力しなおしてどうなるかを確認してみてください

QOCUnitでのStatic Libraryのテストについて

OCUnitでのStatic Libraryのテストについて
OCUnitを使ってMacOSX向けのライブラリのテストを行おうと思っています。
http://sites.google.com/site/smgakusyuu/ocunit
を参考にしていろいろ試しているのですが、
ターゲット:単体テスト の設定が今一よくわかりません。
項目「テストホスト」に、テスト対象のライブラリを指定したら、リンクが通るようになりましたが、
「バンドルローダ」に実行可能ファイルを指定しないとテストが開始されないようです。

どのように設定したらよいか、ご教示いただけないでしょうか。

環境
OS: Mac OS X(10.5.8)
XCode: 3.0 (IDE: 921.0, Core: 921.0, ToolSupport: 893.0)

Aベストアンサー

リンク先ウェブページの作者です。
Static Library のテスト方法を追記しました。
質問内容に記載されている環境と、私の環境が異なりますが、参考になれば幸いです。

参考URL:http://sites.google.com/site/smgakusyuu/ocunit-static-library


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報