アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel VBAにて質問があります。
E列に「01」と表示させたくで
'E列を「文字列」にする
Columns("E:E").Select
Selection.NumberFormatLocal = "@"
と記述しました。
その後、名前を付けて保存でCSV形式にて保存します。
保存されたCSV形式のファイルを開くと「1」のままになってしまいます。
なぜでしょうか?何か他に記述しなければいけないのでしょうか?
わかる方教えてください。

A 回答 (3件)

まず、保存した時は、『0』が生きてるはずです


それをエクセルで読み込んだ時に、『0』が取れます
CSVファイルをメモ帳で開いて見てください
そして、表示形式がG/標準のとき『01』と入力しても『0』が消えます
つまり、読み込むときに表示形式が指定されていないと上手く行きません

簡単な方法としては
文字の先頭にシングルコーテーション『'』を付けます
ABC,123,01,02→'ABC,'123,'01,'02
ただし、常にこの『'』を意識しなくてはなりません
「『'』に続く文字を文字列として読め、という【文字】」ですので…

あとは、手動でTEXTファイルを読み込む操作をマクロの記憶で取って、出てきたソースを改造してみると、CSVファイルに手を加えなくても良い方法が見えてくるかも知れません
ファイルの拡張子を『.txt』にして試し、出来上がったら、CSVファイルを読み込む際、拡張子を『.txt』に変更したコピーを作るマクロと合体させ『.txt』を読み込みます
手動でのやりかた↓
http://www.relief.jp/itnote/archives/000839.php

最後は、自動オープンなどに頼らず、ファイルオープンからマクロを組む事かな?
http://officetanaka.net/excel/vba/file/file08.htm
とか
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
辺り
いきなりシートに展開するのではなく、一旦変数に受けて、文字としてセルに入力することで、『0』が取れるのを防止します

出来なくはありません
実際業務で発生しますし使ってもいます
ですが、結構大変と思った方が良いですよ
Openメソッドは奥が深いんで^^;
がんばってくださいね
    • good
    • 0
この回答へのお礼

pulsaさん
わかりやすい説明ありがとうございました。
初心者の私にはかなり難しいという事がわかりました。
もう1度、自分なりに勉強してみます。
ありがとうございました。

お礼日時:2008/05/20 08:39

CSVは単なるテキストファイルなので、列の表示形式などは記録されません。


従って、数値と認識される文字列(数字、符号、小数点)は数値として扱われます。
CSVで保存し、Excelで参照する限り回避手段はありません。
    • good
    • 0
この回答へのお礼

nda23さん
お忙しい所、回答して頂きありがとうございました。

お礼日時:2008/05/20 08:44

文字を入力してから表示方法を変えるのでなく、


表示方法を変えてから、文字(01)を入力してみてください。
    • good
    • 1
この回答へのお礼

olive_surfさん
お忙しい所、回答して頂きありがとうございました。

お礼日時:2008/05/20 08:45

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A