[EXCEL2007,2010,2013]EXCELを開こうとすると、「~には読み取れない内容が含まれています。このブックの内容を回復しますか?」の再現方法と対処法。

スポンサーリンク
スポンサーリンク

EXCELファイルを開こうとすると、ファイル名.xlsxには読み取れない内容が含まれています。このブックの内容を回復しますか?ブックの発信元が信頼できる場合は、[はい]をクリックして下さい。と表示させる再現方法と対策法です。

Image1


2007,2010,2013のバージョンで発生することを確認しました。

Image3

再現手順

新規にエクセルブック作成して、コマンドボタンを適当に配置し、ALT+F11で以下のコードを貼り付けてください。

Image7

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)にかかわらず、再度開こうとするとエラーが発生します。
Image1

原因箇所

Image8

セルをドロップダウンリスト化していて元に値に入力候補をセットしているのですが、カンマによる入力候補のセットしすぎで、次回EXCEL読み込み時にここでエラーが発生するようです。サンプルプログラムでは100個ほど。

Image9

回避法

元の値をセルで指定するようにします。
候補をセルにセットし、名前をつけました。
実際に使う際は非表示セルにセットするか、非表示シートにセットしておくといいでしょう。

Image13

「元の値」に上でつけた名前を指定します。

Image11

以上で発生しなくなります。