オフィスのコンビネーションボタン/ドロップダウン
-
29-09-2019 - |
質問
オフィスに組み合わせボタン/ドロップダウンを追加するにはどうすればよいですか(以下を参照)。できればコードで。
アップデート: それが役立つ場合、コードは必要ありません。
解決
次のActiveXコントロールに基づいて、それを行うことができます。
- Microsoft ImageList Control、バージョン6
- Microsoft ImageComboBoxコントロール、バージョン6
手動で、[コントロールツールボックス]メニューバーから「その他のコントロール...」を選択し、前述のコントロールをダブルクリックしてシートに表示します。コンボボックスを希望する場所に配置し、イメージャリストの位置を無視すると、設計モードでのみ表示されます。今では、2つの埋め込まれたコントローズがあります
- ImageList1
- ImageCombo1
2つのコンポーネントを挿入すると、... system32 mscomctl32.ocxへの参照も作成されます。
次にあなた
- 画像リストに手動でアイコン(GIF、BMPなど)を追加する
- コンボのImageListプロパティを「ImageList1」に手動で設定します
- コンボの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に問題があるようで、ネットにたくさんの投稿があります。
参考文献 ここ
所属していません StackOverflow