- ベストアンサー
ドロップダウンリストで画像をリストにすることは可能でしょうか?
ドロップダウンリストで使いたいリストのひとつに オートシェイプで作成した画像があるのですが、 何かいい方法はありませんでしょうか? ドロップダウンリストにこだわっているわけではないのですが イメージとしてはひとつのセル内においてのリスト選択で入力規則しか思いつくものがなくて悩んでいます。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
リストに画像を表示することは、一般機能ではできません。 マクロ処理でしたら次の方法はいかがでしょう。セルの右クリックメニューが画像の リストになります。(小さいけど、選択するための判別はできると思います) リストアップする画像は、すべて Gazou という名前のシートに置きます。 1.シートGazou の各画像をクリックし、名前ボックスで名前をつけかえます。 ・リストで上から並べたい順に、Pic1、Pic2、Pic3、‥‥、という名前にして ください。 2.[Alt] を押しながらの [F11] で開く画面で [挿入]-[標準モジュール] を選択し、 以下をコピペしてから、その画面を閉じます。 ' Sub SetPicList() Dim C, i, P, NM, NewItem CommandBars("Cell").reset For Each C In CommandBars("Cell").Controls C.Delete Next For i = Sheets("Gazou").Shapes.Count To 1 Step -1 P = "Pic" & i Sheets("Gazou").Shapes(P).Copy NM = Sheets("Gazou").Shapes(P).Name Set NewItem = Application.CommandBars("Cell").Controls.Add _ (Type:=msoControlButton, Before:=1, Temporary:=True) With NewItem .PasteFace .OnAction = "PastePic" .Caption = NM If i = 1 Then .BeginGroup = True End With Next Set NewItem = Application.CommandBars("Cell").Controls.Add _ (Type:=msoControlButton, Before:=1, Temporary:=True) With NewItem .OnAction = "ResetMenu" .Caption = "標準に戻す" End With End Sub Private Sub ResetMenu() Dim ITM, NewItem CommandBars("Cell").reset ITM = CommandBars("Cell").Controls.Count Set NewItem = Application.CommandBars("Cell").Controls _ .Add(Type:=msoControlButton, Before:=ITM, Temporary:=True) With NewItem .Caption = "画像リスト" .OnAction = "SetPicList" .BeginGroup = True End With Application.CommandBars("Cell").ShowPopup End Sub Private Sub PastePic() Dim NM If IsArray(Application.Caller) Then NM = CommandBars("Cell").Controls _ .Item(Application.Caller(1) - 1).Caption Sheets("Gazou").Shapes(NM).Copy ActiveSheet.Paste End If End Sub ' 3.[ツール]-[マクロ]-[マクロ] から SetPicList を選択して実行します。 あとは任意のセルで右クリックし、メニュー内容を見てください。
お礼
ご指導、ありがとうございます。 ただ、私にはかなり難しい内容のようです。 マクロについては簡単なマクロを作成した経験があるだけで、編集もろくにできないスキルです・・ ですが、勉強のためにトライしてみようと思います。 >リストに画像を表示することは、一般機能ではできません。 断言していただいたので、納得がいきました。 丁寧にお答えいただきまして、ありがとうございます。