プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。エクセルのマクロ(VBA)を組んでいてどうしても解せないことがあります。


Data1 = "9"
Data2 = "               "(←スペースはとりあえず半角30文字とでもしておきます。)
Data = Data1 & Data2
Range("a1").Value = Data

上記の命令を実行すると、9のあとに半角スペースが30文字分ある文字データが入力されると思うのですが、実際には9の数字データだけが入力されてしまいます。つまりスペースだけのData2という変数は無視されているみたいです。

一方、2行目を例えば
Data2 = "               x"
と、スペースのあとに一文字入れるとA1カラムには
"9               x"
と表示されます。

これはどういった現象なのでしょうか?また、スペースだけの文字列を変数として認識させるのはどうすれば良いのでしょうか?
よろしくお願いします。
※この質問を書いていて変に思いました。質問の文中にあるダブルクォーテーションの中のスペースは半角で入力すると全て無視されて""となってしまいます。全角で15文字分のスペースを入れたら入りました。この辺も同じような理由によるものでしょうか・・・

A 回答 (3件)

Range("A1").NumberFormatLocal = "@"


Range("a1").Value = Data

でも変わりませんか。
    • good
    • 0
この回答へのお礼

ありがとうございました。解決しました!!

お礼日時:2003/08/11 17:50

No.625236でも回答させていただきましたが。


結局、スペース+数字ではセルが値を数値と判断し、勝手に数値にしてしまう(trimされてしまう)ようです。
マクロではなく、セルに直接" 1 "等入力してみてください。結果は"1"になると思います。
セルの書式を文字列にすれば大丈夫だと思いますが、問題ありですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。セルの書式を文字列にしてもこの問題は解決しないみたいです。

お礼日時:2003/08/11 17:52

セルの書式を文字列にして下さい。


ちなみに、VBAでなくてもなりますよ。

この回答への補足

早速の回答ありがとうございます。
A1カラムを「セルの書式設定」→「表示形式」→「文字列」にするということですよねぇ・・・
やってみても直らないのですが・・・

補足日時:2003/08/11 15:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!