- ベストアンサー
EXCELのVBAで半角数字を全角数字へ変換
EXCEL2007を使用しております。 VBAにて半角数字を全角数字へ変換したいと思っております。 最初にStrconv (cells (i 、j ) 、vbwide ) としていました。セルには数字が入っていますが、これで実行しても半角のままでした。 これは数字を文字列に変えないとだめなのでは思い、Cstr ( cells ( i 、j ) としてそれをstring として定義した項目へ送ってからStrconv で変えようとしたのですが、これでも半角のままでした。 何か勘違いをしているように思うのですが、アドバイスいただければ幸いです。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
セルの書式設定自体が、数値なのでは? それだと文字列の数値は、自動的に普通の数値に戻ります。 文字列としての全角にするなら Cells(i,j) = "'" & Strconv(cells(i ,j ) ,vbwide) と全角化した文字の前にアポストロフィーを付けるとか Cells(i,j).NumberFormatLocal = "@" Cells(i,j) = Strconv(cells(i ,j ) ,vbwide) と事前に、書式を文字列に変更する。 数値のままの使用で、表示だけ全角なら Cells(i,j).NumberFormatLocal = "[DBNum3][$-411]0" と書式をその他の全角(12345)にすればいいかと。。。
その他の回答 (1)
- dogs_cats
- ベストアンサー率38% (278/717)
文字列(半角英字)から始まる場合はStrconvで英数字は半角から全角になりますが、 数値を全角でセル入力してもエクセルが数値と認識するので全角にならないのではないでしょうか。 ユーザーがセルに数値を文字列とする時に、シングルクォーテーションを数値の前に挿入し文字列として入力しますので、VBAも先にシングルクォーテーションを記入すると変換出来るようです。 Cells(?,?) = "'" & StrConv(Cells(i, j).Value, vbWide)
お礼
おっしゃられるように文字列なら全角になるのですが、数値は文字列ではないんですよね。基本でした。 画像まで付けていただいてありがとうございました。
お礼
おっしゃられる通り、セルの書式自体が数値でした。 回答でいただいた書式で実行したところ、目からウロコでした。 さっそく使わせていただきます。 ありがとうございました。