質問

オフィスに組み合わせボタン/ドロップダウンを追加するにはどうすればよいですか(以下を参照)。できればコードで。

alt text

アップデート: それが役立つ場合、コードは必要ありません。

役に立ちましたか?

解決

次のActiveXコントロールに基づいて、それを行うことができます。

  • Microsoft ImageList Control、バージョン6
  • Microsoft ImageComboBoxコントロール、バージョン6

手動で、[コントロールツールボックス]メニューバーから「その他のコントロール...」を選択し、前述のコントロールをダブルクリックしてシートに表示します。コンボボックスを希望する場所に配置し、イメージャリストの位置を無視すると、設計モードでのみ表示されます。今では、2つの埋め込まれたコントローズがあります

  • ImageList1
  • ImageCombo1

2つのコンポーネントを挿入すると、... system32 mscomctl32.ocxへの参照も作成されます。

次にあなた

  1. 画像リストに手動でアイコン(GIF、BMPなど)を追加する
  2. コンボのImageListプロパティを「ImageList1」に手動で設定します
  3. コンボのAutoLoadプロパティを手動でTRUEに設定します

今では、エラーを備えたコンボがありますが、アイコンはありません。

次に、このコードを実行します

Sub FillCombo()
Dim SH As Worksheet, OO As OLEObjects, Idx As Integer

    Set SH = ActiveSheet
    Set OO = SH.OLEObjects


    With OO("ImageCombo1").Object
        .ComboItems.Clear
        For Idx = 1 To OO("ImageList1").Object.ListImages.Count
            .ComboItems.Add , , , Idx
        Next Idx
    End With

End Sub

私はVBAによってオブジェクトを作成しようと懸命に試みましたが、ImageComboは作成すると異なる動作をしているようです

Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....

コンボは作成されますが、ドロップダウン矢印は私が何をしても表示されません。すべてのデバッガーは、すべてのListView要素がきちんと添付されていることを示しています。多くの同僚がそのActiveXに問題があるようで、ネットにたくさんの投稿があります。

参考文献 ここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top