• ベストアンサー

入力規則、ValidateListの使い方

Windows Vista/Excel2007/VB6.5 では動作しますが、 Windows XP/Excel2000/VB6.0 ではエラーとなります。 どこが悪いかご教示下さい。 <エラー内容> 実行時エラー'1004' アプリケーション定義又はオブジェクト定義のエラーです。 <コード(ボタンのサブに書いています。)> Dim FM1 As String FM1 = "=$A$10:$A$20" ' 選択肢の範囲 ' i は行数、Fは列名です。 For i = 8 To 18 Posi = "F" + CStr(i) With Range(Posi).Validation .Delete .Add Type:=xlValidateList, Formula1:=FM1 End With Next

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

2002で Sub test01() Dim FM1 As String FM1 = "=$A$10:$A$20" ' 選択肢の範囲 ' i は行数、Fは列名です。 For i = 8 To 18 posi = "F" + CStr(i) MsgBox posi With Range(posi).Validation .Delete .Add Type:=xlValidateList, Formula1:=FM1 End With Next End Sub で動きますね。 結果もおかしくないようだ。 原因はわからないが、とりあえず報告します。

iso27001
質問者

お礼

2002での確認、ありがとうございました。 ボタンのプロパティの設定変更で問題解決しましたが 2002でも動作することが確認でき、ありがたいです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

Excelのバージョンの問題ではなく、シート以外(例えばボタンとかシェープやグラフ)がフォーカス持ってませんか? http://o-mita.cocolog-nifty.com/blog/2008/10/excelvba-bf69.html

iso27001
質問者

お礼

ありがとうございました。問題解決しました。 問題のコードはボタンのサブルーチンに書いてありましたが ボタンのプロパティのTakeFoucusOnClickをTrueからFalseに 変更したら動作するようになりました。 VBA独学中の私が独力で解決しようとしたら何年もかっかて いたでしょう。 感謝!感謝!です。

すると、全ての回答が全文表示されます。

関連するQ&A