エクセル上で=text(cells,0)で変換できるのであまり需要はないかもしれないですが、
VBAを使って数値から文字列への変換を無理矢理気味にやってみました。
選択範囲セルで動くサンプルです。
○サンプルコード[text( ,0)]
Sub format_moji1()
'選択範囲のセルの書式を文字列に変更
Selection.NumberFormatLocal = "@"
'それぞれのセルで処理
Dim x As Range
'一文字目が0だと取れてしまうので回避
If Left(x, 1) <> 0 Then
'指数化してしまうものを回避
If InStr(x, "E") = 0 Then
'ワークシート関数で…
x = WorksheetFunction.Text(x, 0)
End If
End If
Next
'ブランクのセルに”0”が表示されてしまうのでブランクに再変換
Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole
End Sub
参照・類似ページ
NumberFormatLocalReplace
○サンプルコード[sendkeys]
Sub format_moji2()
Dim r As Long, c As Long, i As Long, j As Long
'選択範囲のセルの書式を文字列に変更
Selection.NumberFormatLocal = "@"
'選択範囲の列の数
c = Selection.Columns.Count
'選択範囲の行の数
r = Selection.Rows.Count
For i = 1 To c '列繰り返し
For j = 1 To r '行繰り返し
'編集のためF2キー
Application.SendKeys "{F2}"
'セルの書式=文字列反映
Application.SendKeys "{Enter}"
Next j
Next i
End Sub
参照・類似ページ
SendKeysメソッド速度的にはWorksheetFunction.Text関数の方が断然早いっぽいです。

