TSVなどのデータをExcelに貼り付ける場合、勝手にデータが変更されないように(0001が1になるなど)、セルの書式設定で表示形式を「文字列」にしてから貼り付けることが多い。
以下は「文字列」で貼り付けた例。文字が左に寄っていることからもそれがうかがえる。(設定によっては緑三角が見える?)
しかし、idなどの情報は数字として扱いたい。なぜなら「文字列」として貼ってある状態でソートすると辞書順になってしまうから。(1、10、2のように並んでしまう)
貼る前の段階でそういう書式設定にしていれば問題ないのだが、数字として扱いたい列が複数ある場合は、まず貼り付けてからそれを行った方が楽。
しかし、Excelは既にデータがある状態で表示形式を変えても、反映されないことがある。。
以下のように「文字列」表示形式で貼り付けたものを、「標準」表示形式に変えても、見た目やソートの扱いは文字列のまま。。
この場合、一度F2を押してセルの中に入り、エンターを押すと現在の書式を適用させることは出来る。(自分はこれを「セル内容の再確定」と呼んでいる)
しかし、その対象が多いと非常に手間。
以下のVBAモジュールを作成し、書式を適用したいところを選択状態にして実行すると、それを一括で行うことが出来る。
Sub reconfirm()
For Each e In Selection
e.Value = e.Value
Next
End Sub
実行後、以下のようになり、「標準」表示形式が適用されたことが分かる。