KB0156: thinkcell データシートにデータを貼り付けられない、または書式が失われる

  1. ホーム
  2. リソース
  3. ナレッジ ベース
  4. KB0156

問題

Excel ブック(.xlsx)内のデータをコピーして thinkcell 要素のデータシートに貼り付けると、次のいずれかの問題が発生します。

  • メッセージが表示されます: Microsoft Excel cannot paste the data。
  • 空のセルだけが貼り付けられます。
  • 日付や数値の書式が失われます。たとえば、1/1/2012 が 40909 になったり、$3.5 が 3.5 になったりします。
  • 貼り付け後、パーセント値が正しく表示されません。100% チャートでは、チャートのレイアウトが変わる場合があります。
  • Use Datasheet Fill on Top を選択していても、セルの色が要素に表示されません。

これらの問題は、thinkcell の Excel データ リンクを使用している場合にも発生することがあります。

解決策

.xlsx ブックに約 65,490 を超えるセル スタイルが含まれている場合、これらの問題のいずれかが発生することがあります。セル スタイルの数を確認するには、VBA エディターの Immediate ウィンドウでコマンド print Activeworkbook.Styles.Count を使用します。 もっと読む

  1. VBA エディターを開きます(Alt+F11)。
  1. Immediate ウィンドウが表示されない場合は、View > Immediate Window を選択します。
  2. Immediate ウィンドウで print Activeworkbook.Styles.Count と入力し、Enter を選択します。

影響を受けるブック内のセル スタイル数を整理するには、次のいずれかをお試しください。

  • ワークシートを新しいブックにコピーします。 もっと読む

    Excel 2013 以降では、影響を受けるワークシートを新しいブックにコピーすることで、未使用のセル スタイルの蓄積を防ぐことができます。

    1. ブック内のすべてのワークシートを選択します。最初のシートを選択し、Shift を押したまま最後のシートを選択します。
    2. 選択範囲を右クリックし、Move or Copy を選択します。
    3. Move or Copy ダイアログの To book ドロップダウン メニューで、(new book) を選択します。
    4. Create a copy を選択し、OK を選択します。
    5. 新しいブックを新しい名前で保存します。
  • XLStyles Tool を使用してブックを整理します。 もっと読む
    1. XLStyles Tool を開きます。
    2. Get File を選択します。
    3. 目的のファイルを選択し、Scan Selected File を選択します。
    4. Used Styles で、Force all Styles to "Normal" を選択します。
    5. Process File を選択します。
  • VBA マクロを使用して、ブックからカスタム セル スタイルを削除します。 もっと読む

    DeleteCustomStyles() マクロを使用して、ブックからすべてのカスタム セル スタイルを削除します。

    1. VBA エディターを開きます(Alt+F11)。
    2. ブックを選択し、Insert > Module を選択します。
    3. 次のマクロを入力し、実行します(F5)。
    Sub DeleteCustomStyles()
    Dim st As Style
    Dim i, i_cust As Long
    i_cust = 0
    For i = (ActiveWorkbook.Styles.Count) To 1 Step -1
    	With ActiveWorkbook.Styles(i)
    		If .BuiltIn = False Then
    			On Error Resume Next
    			.Locked = False
    			On Error GoTo 0
    			If Not .Locked Then
    				.Delete
    				i_cust = i_cust + 1
    			End If
    		End If
    	End With
    	If (i Mod 100) = 0 Then Debug.Print i
    Next
    MsgBox "Styles deleted: " & i_cust & " styles" & Chr(13) & "Styles left: " & ActiveWorkbook.Styles.Count
    End Sub

最善の解決策は、ユーザーが未使用のセル スタイルを他のブックに貼り付けないようにすることですが、そのためには Microsoft が Excel 2007 以降のバグを修正する必要があります。これまでのところ、Microsoft はこの修正を提供するほどビジネスへの影響が大きいとは判断していません。貴社が Microsoft Office Support 契約をお持ちで、Microsoft に修正を依頼したい場合は、Microsoft ケース番号 113012810172527 および 114021711190574(Excel 2013)を参照できます。

説明

Excel データをコピーして貼り付ける場合、または Excel データ リンクを通じてデータを転送する場合、データは BIFF12/.xlsb 形式で保存されます。このファイル形式でサポートされるセル スタイルは約 65,490 個です。この形式でサポートされる数を超えるセル スタイルを含む .xlsx ブックからデータをコピーすると、thinkcell データシートにデータを貼り付けられないか、貼り付けたデータの書式情報が失われます。 もっと読む

BIFF12/.xlsb 形式でサポートされる数を超えるセル スタイルを含む Excel ブックが作成される原因として、次の要因が考えられます。

  • 一部の .xlsx ブックには、Excel のバグや問題のあるコード設計により、数万ものセル スタイルが含まれています。
  • 一部のレポーティング ツールは、必要以上のセル スタイルを生成します。
  • 1 つ以上のセルを別の Excel インスタンスの別のブック、または thinkcell データシートにコピーすると、未使用のセル スタイルもすべてそのブックまたはデータシートにコピーされます。 もっと読む

    データシートは別の Excel インスタンス内の Excel ワークシートを基にしているため、未使用のセル スタイルは常に thinkcell データシートにコピーされます。

    Excel 2013 以降で別の Excel インスタンスを起動するには、次の手順に従います。 もっと読む

    1. Excel ブックを開きます。
    2. Alt を押しながら、Windows タスクバーの Excel アイコンを右クリックします。メニューで Excel を選択します。
    3. Excel の新しいインスタンスを起動するかどうかを尋ねられるまで、Alt を押し続けます。Yes を選択します。

同じ Excel インスタンス内で 1 つ以上のセルを別のブックにコピーした場合、未使用のセル スタイルは別のブックにコピーされません。