• ベストアンサー

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

お世話になります。エクセルのマクロ(VBA)を組んでいてどうしても解せないことがあります。 Data1 = "9" Data2 = "               "(←スペースはとりあえず半角30文字とでもしておきます。) Data = Data1 & Data2 Range("a1").Value = Data 上記の命令を実行すると、9のあとに半角スペースが30文字分ある文字データが入力されると思うのですが、実際には9の数字データだけが入力されてしまいます。つまりスペースだけのData2という変数は無視されているみたいです。 一方、2行目を例えば Data2 = "               x" と、スペースのあとに一文字入れるとA1カラムには "9               x" と表示されます。 これはどういった現象なのでしょうか?また、スペースだけの文字列を変数として認識させるのはどうすれば良いのでしょうか? よろしくお願いします。 ※この質問を書いていて変に思いました。質問の文中にあるダブルクォーテーションの中のスペースは半角で入力すると全て無視されて""となってしまいます。全角で15文字分のスペースを入れたら入りました。この辺も同じような理由によるものでしょうか・・・

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

  • ベストアンサー
回答No.2

Range("A1").NumberFormatLocal = "@" Range("a1").Value = Data でも変わりませんか。

tomochan25
質問者

お礼

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

その他の回答 (2)

  • trytrytry
  • ベストアンサー率37% (13/35)
回答No.3

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

tomochan25
質問者

お礼

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

回答No.1

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

tomochan25
質問者

補足

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

関連するQ&A

専門家に質問してみよう