Excelスプレッドシートのすべてのテキスト列が一重引用符で始まるのはなぜですか?

Excelスプレッドシートのすべてのテキスト列が一重引用符で始まるのはなぜですか?

めったに使用しない Excel で送信されたデータをデータベースにインポートしようとしています。テキスト値を含む各セルのデータの一部として、一重引用符が表示されます。

    'PUBLIC, JOHN Q.

Excel でセルをクリックすると、スプレッドシートの上部にある編集ボックス ({X、チェック、Fx} ボタンの右側) にも先頭の一重引用符が表示されます。つまり、先頭の引用符はインポート ユーティリティによって挿入されたものではなく、Excel データに含まれています。

このアーティファクトは Excel の外部で作成された可能性がありますが、以前にこれを見たことがあり、Excel で実行している操作によるものであることがわかっている場合は、それが何であるかを知りたいので、それをやめるように依頼します。このデータのクリーンアップは、このようなシートが多数あり、今後もさらに増えるため、非常に時間の無駄になっています。

答え1

アポストロフィは、'セルの最初の文字として表示される場合、Excel の特殊文字になります。これにより、Excel は文字列の残りの部分をテキストとして扱うようになります。

以下の方法で削除できます:

  • セルの選択
  • 次にメニューデータ/テキストを列に分割

これを自動化するマクロを書くこともできるでしょう。

または、データを csv にエクスポートし、その csv ファイルをデータベースにインポートします。

答え2

うわ、Excel 2013で何かが変わった

隠れたアポストロフィを削除するマイクロソフトの提案する方法Excel 2013 では動作しなくなりました。以前のバージョンでは動作していたはずです。

しかし、ここでは回避策として一時的変数

Sub removePrefix()
    For Each c In UsedRange
        If c.PrefixCharacter <> vbNullString Then
            temp = c.Text
            c.Clear
            c.Value = temp
        End If
    Next
End Sub

関連情報