3

Office2010で作成された大きなExcelワークブックとVBAコードがあります。ドロップダウンメニューを除けば、すべてが正常に機能しているようです。正確には、それらはグラフィカルに機能しますが、

Me.Shapes("Drop Down 1").ControlFormat

「オブジェクトはこのアクションをサポートしていません」というエラーをスローします(「ドロップダウン1」は正しい名前であると確信していますなど)。正確には、正しく参照されます(たとえば、shape = Me.Shapes(1)動作します)が、好きではないようですControlFormat。Googleはあまり役に立ちません。助言がありますか?

私はVBAにまったく慣れていないので、気付いていない簡単なデバッグの魔術があるかもしれません。

編集:ダミーのドロップダウンメニューを使用して新しいワークブックを作成し、マクロの記録中に値を選択しようとしましたが、結果が得られません(メニューが存在しなかったようです)。

4

1 に答える 1

2

これはイライラすると同時に愚かに聞こえるかもしれませんが、Excel 2011の場合は、行を次のように変更します。

Me.Shapes("Drop Down 1").ControlFormat

Worksheets("Sheet1").Shapes("Drop Down 1").ControlFormat

例えば

これはExcel2010では機能しますが、Excel2011では機能しません

Sub Sample()
    With Me.Shapes("Drop Down 1").ControlFormat
        .AddItem "Sid"
    End With
End Sub

それはあなたが言及したエラーをあなたに与えるでしょう。

スクリーンショット

ここに画像の説明を入力してください

Excel 2011の場合、(オブジェクトを完全に修飾する)を使用する必要があります

Sub Sample()
    With Worksheets("Sheet1").Shapes("Drop Down 1").ControlFormat
        .AddItem "Sid"
    End With
End Sub

スクリーンショット

ここに画像の説明を入力してください

Sheet1:上記を関連するシート名に置き換えてください。

于 2012-12-17T18:32:12.753 に答える