重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

今更なのかもしれませんが、2003・2007・2010で、ActiveXコントロールとフォームコントロールを意識せず全部ActiveXのコントロールをシートに貼り付けてプログラムを作っていましたが、いままで、不自由はありませんでした。ところが、
2013でプログラムを走らせると、エラーに成りそのコントロールを認識してくれません。
2013では シートにActiveXコントロールは 貼り付けられないようです。

で、新たにフォームコントロールのパーツを貼り付けるのですが、プロパティーが VBAというか、ActiveXとは全く異なり、例えば、オプションボタンは、プログラム分岐のフラグ代わりに使っていたのですが(VBAから シート.orderInput_btn2.value = True などと)、「マクロの実行」などと 出て、VBAに記載されたコードが選択できるようですが、VBAから この、パーツは認識しない?(コードを書いても、お助け文字列が浮いてこないし、ドロップダウンにもない?)のですが・・・・

どこで、私は間違ったのでしょうか?それとも、これで、正しい?

A 回答 (2件)

こんばんは。



>2013でプログラムを走らせると、エラーに成りそのコントロールを認識してくれません。
>2013では シートにActiveXコントロールは 貼り付けられないようです。

これは、#1様が述べた通り、2014.12.9アップデートの影響下にあるのだと思います。

>(VBAから シート.orderInput_btn2.value = True などと)
これは、オン・オフの数値が違うからだと思います。xlOn は、1 ですが、xlOff は、-4146だからです。

Sub TestMarcro1()
 If Worksheets("Sheet1").OptionButtons(1) = xlOn Then
   MsgBox "OptionButton は、ON", vbInformation
 Else
    MsgBox "OptionButton は、OFF", vbExclamation
 End If
End Sub
    • good
    • 0
この回答へのお礼

感謝。ご返事遅れました。陳謝

お礼日時:2015/02/26 09:51

ActiveXについては以下。


http://support.microsoft.com/kb/2553154
http://support.microsoft.com/kb/3025036/ja

フォームコントロールへの参照については
MsgBox Sheets("Sheet1").Shapes(Application.Caller).DrawingObject.Value
この例は、コントロールに登録したマクロ、に書く場合の例。
Application.Callerに押されたボタンの名前が返る。
Application.Callerに換えて既知のコントロール名を指定。
    • good
    • 0

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