vba クリップボードからの TRUE または FALSE テキストが Excel によってブール値として認識される

vba クリップボードからの TRUE または FALSE テキストが Excel によってブール値として認識される

列の 1 つ (列コードとします) にテキスト TRUE が含まれているテーブルがあります。しかし、これを Excel にコピーすると、データがブール値になり、vlookup (列コードからテキスト TRUE を検索する) がエラー (#N/A) になります。どうすれば解決できますか?

ちなみに、まずはクリップボードにデータを挿入します

Dim ClipboardObj As New MSForms.DataObject
ClipboardObj.SetText Text:=myExternalData
ClipboardObj.PutInClipboard

次に、貼り付けオプションを使用してExcelテーブルにデータを入力します。

Range("C4").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False

答え1

VBAコードでセルの書式をテキストに設定し、

Range("C4").NumberFormat = "@"
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False

TRUEセル値を二重引用符で囲む必要がある場合は、

Range("C4").NumberFormat = "@"  ' you may not need this
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
Range("C4").Value = Chr(34) + Range("C4").Value + Chr(34)

答え2

解決しました。Excel ツールバーでコード列の形式をテキストに変更しましたが、形式を確認するのを忘れていました。

@njc: はい、クリップボードから貼り付けた後に、テキスト「TRUE」を文字列(ブール値ではない)として取得したいです。

関連情報