• 締切済み

ダイアログのリストボックスを3つ連ねて作りたい

マクロの作成は全くの初心者なのですが、 うまい具合にそういったリスト表の作成マクロが載っていたので コピペして作ってみたのですが、 サイト通りの1つだけのリスト表ならうまくいくのですが 3つ連ねて、コントロールの書式設定で複数選択にチェックを入れているのですが、 選択するところまではうまくいきますが、OKボタンを押すとエラーが出ます。 そして、     '確認ボタン(OKボタン)が押された場合の処理 → If ListBox1.ListIndex > 0 Then の部分が黄色く表示されます。 何がおかしいのか、どこをどう直せば良いのか分かる方教えて下さい。 お願いします。 参考までに、私がコピペしたサイトを載せておきます。 リストもまさにサイトのような感じのものを 3つ連ねたいのです。果物のリスト、野菜のリスト、魚のリスト と、 いった感じで...。 宜しくお願い致します。 「はじめてのダイアログシート」というサイトです。 http://hp.vector.co.jp/authors/VA016119/excel95/dialog1.html 以下 参考 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Sub MyFormShow() Dim Dialog1 As DialogSheet Dim ListBox1 As ListBox 'オブジェクト変数の設定 Set Dialog1 = ThisWorkbook.DialogSheets("Dialog1") Set ListBox1 = Dialog1.ListBoxes(1) 'オブジェクト変数の設定 Set Dialog1 = ThisWorkbook.DialogSheets("Dialog1") Set ListBox2 = Dialog1.ListBoxes(2) 'ダイアログボックスの表示 If Dialog1.Show Then '確認ボタン(OKボタン)が押された場合の処理 If ListBox1.ListIndex > 0 Then ActiveCell.Value = ListBox1.List(ListBox1.ListIndex) End If Else 'キャンセルボタンが押された場合の処理 MsgBox "キャンセルされました。", vbInformation End If End Sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 はじめてのダイアログシート(Excel95)  ←Ver 95 (=Ver.5) と出ています。 ダイアログボックスは、古い技術ですので、Excel自体の利用には、今後の不安は残ります。 >マクロの作成は全くの初心者なのですが、 本来、Ver.5 や Ver.4 の技術は、Excelの一般的なVBAを全て知った後に、手をつけるもので、初心者とおっしゃるなら、あまり手を出さないほうがよいかもしれません。別に難しいというわけではないのですが、あまりマクロの勉強としては、プラスになりません。 >'確認ボタン(OKボタン)が押された場合の処理 >If ListBox1.ListIndex > 0 Then きちんと、リストボックスが出来ていればエラーの出るはずがないのですが、もしかしたら、リストボックスはあっても、活性化されていない可能性があります。ダイアログボックス・シート上で、正しく、「入力範囲」のデータが出ているか確認してください。

guchi_yama
質問者

お礼

そうですかぁ、初心者にはまだまだ勉強不足ということですね。 リストボックスの入力範囲もその他諸々確認したのですが、 やはり、不具合がどこなのか分かりませんでした。 わざわざお答え頂きましてありがとうございました。 また何かありましたら、 アドバイス頂けますよう宜しくお願い致します。

関連するQ&A