こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのマクロ(VBA)の変数でスペースを認識しません

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


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

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

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

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

投稿日時 - 2003-08-11 14:48:27

QNo.625203

すぐに回答ほしいです

質問者が選んだベストアンサー

Range("A1").NumberFormatLocal = "@"
Range("a1").Value = Data

でも変わりませんか。

投稿日時 - 2003-08-11 15:31:10

お礼

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

投稿日時 - 2003-08-11 17:50:51

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2003-08-11 17:15:18

お礼

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

投稿日時 - 2003-08-11 17:52:03

ANo.1

セルの書式を文字列にして下さい。
ちなみに、VBAでなくてもなりますよ。

投稿日時 - 2003-08-11 15:06:39

補足

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

投稿日時 - 2003-08-11 15:21:33

あなたにオススメの質問