複数選択を有効にしてリストボックス(Excel 2010)から選択した値を保存しようとしています。これは、リスト内の項目を繰り返し処理して、それらが選択されているかどうかを確認することで簡単に実行できます。ただし、リストボックスをいくつか追加する場合は、それぞれにコールバックを作成する必要があります。
Sub ListBox1_Changed()
Call DoStuff(Worksheets("Sheet1").ListBoxes(1))
End Sub
Sub ListBox2_Changed()
Call DoStuff(Worksheets("Sheet1").ListBoxes(2))
End Sub
Sub DoStuff(L as ListBox)
'Do stuff here
Sub
最終的には、複数のワークシートにまたがるこれらのリストボックスが多数存在することになります。
ここで私の質問は次のとおりです。マクロを呼び出した特定のボックスを参照し、この単一の関数をすべてのリストボックスに割り当てることは可能ですか?私は次のようなものを推測しています:
Sub ListBox_Changed(ByVal L as Object)
' This will not work btw ^^^^^^^^
' Magic code goes here.
Call DoStuff(L_converted_to_ListBox_Format)
End Sub
私はユーザーフォームを使用していませんが、リストボックスをワークシートに直接配置しただけであることに注意してください。
ありがとう!