
Excel VBA(Excel2000)について質問です。
セルの入力規則を設定するvalidationプロパティ設定時に表記エラーが起こるのですが、どういった原因なのか知りたいです。
そのエラーを起こす手順ですが、
1. 新規ブックを作成する
2. Visual Basic Editorを使用して、Sheet1に以下のコードを埋めこむ:
Private Sub Worksheet_Activate()
With Cells(1, 1).Validation
.Delete
.Add Type:=xlValidateList, Formula1:="test1,test2"
End With
End Sub
3. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
→ 問題なく作動する
4. Sheet1の任意の場所に、コントロール ツールボックスのコマンドボタンを配置する
5. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
→ これも問題なく作動する
6. 4.で配置したコマンドボタンを押す
7. Sheet1 ←→ Sheet2 or Sheet3をタブで切り替える
→ 表題のエラーが発生する
といったように、ボタンやチェックボックス等を配置したシートにおいてvalidation.addメソッドを使用すると、何故かエラーが発生します。この発生パターンが見つかるまでずっと悩んでいました。
今現在は、一応、他の方法で回避できてはいますが、どうしてこのエラーが出るのかはっきりしたいので、ご存知の方はどうぞご指導お願い致します。
No.1ベストアンサー
- 回答日時:
> 6. 4.で配置したコマンドボタンを押す
この操作でコマンドボタンがアクティブ状態になってしまうのが原因のようですね。これはチェックボックスとかリストボックス等でも起こると思います。
最も簡単な対処方法としては、Cells(1,1).SelectとかRange("A1").SelectをWith Cells(1, 1).Validation の前に記述し、特定のセルをアクティブにする方法でしょう。
早速のご回答、どうもありがとうございます。
> この操作でコマンドボタンがアクティブ状態になってしまうのが原因のようですね。これはチェックボックスとかリストボックス等でも起こると思います。
なるほど、そういうことがあるのですか。
私が手順で挙げたようなパターンは良くあると思い、他にも同じ現象で困っている人がいるのではないかと、色々なサイトを探しまわったのですが、ヒントが全然見つかりませんでした。
> 最も簡単な対処方法としては、Cells(1,1).SelectとかRange("A1").SelectをWith Cells(1, 1).Validation の前に記述し、特定のセルをアクティブにする方法でしょう。
実は私の回避策も、該当するセルをSelectし、With Selection.Validation...End Withのようにしています。
とにかく、頂いた回答で大方すっきり致しました。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を 2 2023/02/23 20:13
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
シェルスクリプトの実行エラー...
-
PCが故障しました。。。【Inpag...
-
ホームページ転送中に「アクセ...
-
VBAで印刷するとエラーになって...
-
PDF画像のTeXへの埋め込み
-
図形のクリアで実行時の1004エ...
-
バッチ処理について
-
C# HttpWebRequestのエラーにつ...
-
Eclipseでのエラー検出の機能に...
-
pythonをjupiter notebookからm...
-
Too few parameters. Expected ...
-
ACCESS VBAのOpenForm書き方
-
エラーコード 70 「書き込み...
-
vbaでファイルを開くパス名に変...
-
PowerPoint(.pptx)ファイルをPD...
-
Access ADOで文字列を日付型へi...
-
UWSC初心者です。
-
アクセス2019入力規則、規...
-
Debug Assertion Failed?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
Web.Config 構成ファイルのエラー
-
シェルスクリプトの実行エラー...
-
ホームページビルダーの”全体の...
-
NET USE コマンドでエ...
-
C# HttpWebRequestのエラーにつ...
-
VBAで印刷するとエラーになって...
-
LTspiceのTime Stepエラーについて
-
Access ADOで文字列を日付型へi...
-
不明なソフトウェア例外(0xe06...
-
図形のクリアで実行時の1004エ...
-
EXCELを開くとエラーがでます。
-
vbaでファイルを開くパス名に変...
-
W3CのCSS検証エラーについて
-
ASP.NETでのランタイムエラー?...
-
エラーコード 70 「書き込み...
-
WNetAddConnection*()の使い方
-
PowerPoint(.pptx)ファイルをPD...
-
Excel ファイルに保存すると実...
おすすめ情報