10秒目をつむったら…

yoshitsunaと申します。よろしくお願いします。

■処理
Visual Basicでスプレッドシートの内容をエクスポートしてエクセルファイルを作っています。
関数はExportToExcelです。

■現象
作成されたエクセルファイルのセルの内容が、一度入力状態にならないと確定されない。
具体的に書くと次のとおりです。

セルには100と表記されているが、左詰め状態になっていて数値として確定されていない。
そのセルをダブルクリックするなどして入力状態に一度なって初めて数値として確定される。
(この瞬間に右詰めになって数値として扱えます)

■やりたいこと
VBで、この作成したエクセルファイルを開いて、どうにかして全セル内容を確定させることは
できないでしょうか?


■環境
OS Win2000
VB 5.0(SP3)
Spread Sheet 3.0J
Excel 2000



過去の質問ログを見ても探すことができませんでした。
どなたか御存知の方がいらっしゃいましたら御教授下さい。
よろしくお願いいたします。

A 回答 (1件)

NumberFormatLocalで表示形式を指定


してあげればいかがでしょう。


XlSheet.Cells(A, 1).NumberFormatLocal = "0" '数値

エクセルのVBのヘルプでNumberFormat プロパティ
に以下のようにあります。

表示形式を示す文字列は、[セルの書式設定] ダイアログ ボックスの [表示形式] タブで、[分類] ボックスから [ユーザー定義] を選択したときに表示される、[種類] ボックスの中の文字列と同じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

ats8181oyajiさんの御教授のとおりに表示形式を
確定させましたが、この処理を行っても一度入力状態
にならないと確定されませんでした。

表示形式を確定させたセルの内容を以下の処理でコピー
してペーストすることによって回避できました。

sBuf = xlSheet.Cells(i, j).Value 'Copy
xlSheet.Cells(i, j).Value = sBuf 'Paste

なぜこれでOKなのかはわかりませんが・・・・

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

お礼日時:2003/12/08 11:46

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