- ベストアンサー
英語表記されたハイフォンのみ色替可能?
エクセル上での英語表記された電話番号(例)+23 222-111-1111 最初の+と、間のハイフォンのみを色替えしたいのですが、どうしても最初のプラスが計算式に変換しようとしてか出来ません。 書式設定で文字列にしても出来ません。 替える方法はないのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 > 書式設定で文字列にしても出来ません。 ほんとですね。知りませんでした。 > 替える方法 セルの書式の表示形式とは無関係に、出来るようにする方法があります。 '+23 222-111-1111 先頭に ' シングルクォートを付加しましょう。 これで、必ず、文字列として扱われるようになります。 「数式なのか?」とExcelが判断に困ることもなくなりますから、 何かの拍子に勝手に"+"が"="に変換されるリスクを排除することもできます。 ' シングルクォート、先頭におかれた場合だけは特別な機能を持ちます。 プレフィックス(プリフィックス)と呼ばれて、 本来は、「以下の文字列を左詰めで表示せよ」という命令ですが、 1、文字列として評価されない値を強制的に文字列にします。 2、 ' は表示(印刷)されません。 3、 ' は数式などで参照する場合(その他値を取得する場合)、無視されます。 例)A1に'+23 222-111-1111 と入力してある場合、 =Left(A1,1) の戻りは "+" です。"'"ではありません。 わりと見かけるトラブルですが、電話番号のように数字を"-"で区切った値は 勝手に日付シリアル値に変換されるケースもありますから、 データを正しく維持する意味でも、今回問題のようなデータを (Excelに代表される)表計算ソフトで扱う場合は、 プレフィックスを付けて保存することをお勧めします。 そうしておけば、お望みの作業も、問題なく実現できます。 現実的には手作業で沢山こなすのも大変でしょうから、 余裕があれば、VBAでの対応も検討していいと思いますが、 その場合でも(むしろVBAでこそ)、"生データの扱い"は きちんとしておいた方が良いと思います。 以上です。
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 最初に + があるということはセルの表示形式は文字列になっているわけですね? VBAになってしまいますが、一例です。 データはA列の1行目からあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long Dim k As Long Dim str As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 1) If str = "+" Or str = "-" Then Cells(i, 1).Characters(Start:=k, Length:=1).Font.ColorIndex = 3 '←赤にしています。 End If Next k Next i End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
お礼
早速のお返事ありがとうございました。 ただVBEの扱いは全然と言っていいほど分かりません。 出来るようになったらたぶん参考になるのだとは思うのですが、 方法が私には難しいのでこれから勉強した上で参考にだけさせていただきます。 ありがとうございました。
お礼
お返事ありがとうございます。 やはり数式になってしまうんですね。 とても簡単なやり方ですぐ出来て大変助かりました。 やはりVBEの勉強もした方が良さそうですね。 プログラム見ただけで私の脳は勝手に拒否反応をするので、訓練させたいと思います。(笑) ありがとうございました。