EXCELファイルを開こうとすると、ファイル名.xlsxには読み取れない内容が含まれています。このブックの内容を回復しますか?ブックの発信元が信頼できる場合は、[はい]をクリックして下さい。と表示させる再現方法と対策法です。
2007,2010,2013のバージョンで発生することを確認しました。
再現手順
新規にエクセルブック作成して、コマンドボタンを適当に配置し、ALT+F11で以下のコードを貼り付けてください。
Option Explicit
Private Sub CommandButton1_Click()
Dim s As String
Dim i As Integer
For i = 1 To 100
s = s & "," & i * 20
Next
s = Mid$(s, 2)
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s
.InCellDropdown = True
End With
Range("A1").Value = 200
End Sub
コードを貼り付けたらEXCELシートに戻ってCommandButton1をクリック。
保存形式がマクロ有効(XLSM,XLSB)、無効形式(XLSX)にかかわらず、再度開こうとするとエラーが発生します。

原因箇所
セルをドロップダウンリスト化していて元に値に入力候補をセットしているのですが、カンマによる入力候補のセットしすぎで、次回EXCEL読み込み時にここでエラーが発生するようです。サンプルプログラムでは100個ほど。
回避法
元の値をセルで指定するようにします。
候補をセルにセットし、名前をつけました。
実際に使う際は非表示セルにセットするか、非表示シートにセットしておくといいでしょう。
「元の値」に上でつけた名前を指定します。
以上で発生しなくなります。








コメント