ワークブックを開くときに入力するコンボ ボックスがいくつかあります。データのソースはデータベースから取得されます。
次のコードでデータ検証を使用して、コンボ ボックスに入力します。
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=list
.IgnoreBlank = False
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
list は、データベース レコードセットから作成したカンマ区切りの文字列です。
これはすべてうまくいきます。後でブックを再度開いたときに問題が発生します。エラーが発生する
「Excel で判読できないコンテンツが見つかりました。このファイルのコンテンツを復元しますか」
はいと答えると、Excel は次のように表示します。
「Excel は機能を削除してファイルを修復できました」
また、一部のコンボ ボックスからのデータ検証がなくなりました
インターネット検索で、データ検証に使用している文字列が長すぎるのではないかと疑っていますか?
コンボボックスは動的であり、ユーザーの選択に応じてチョップおよび変更されるため、レコードセットの値を非表示のシートに追加し、データ検証ソースを非表示のシートの範囲に設定することはできません。ユーザー操作のさまざまな時点で作成した文字列にデータ検証を設定できるようにする必要があるだけです。
文字列が長すぎる場合は、データ検証に追加できますか、またはこの問題を回避するために使用できる別のトリックはありますか?