Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
セルの書式通りに表示したい。
投稿日時: 23/02/13 11:43:50
投稿者: マロさん

C#のフォームアプリから、.Runtime.InteropServicesを利用して
エクセルファイルを生成し、
セルの書式を設定、セルに値を代入してファイル出力しています。
  
ところが、C#側で
.NumberFormatLocal = "yyyy/mm/dd"; //西暦
設定した列のセルに値を代入すると、
2022/11/30 0:00:00
と表示され、
そのセルをダブルクリックすると、
2022/11/30
と(こちらが期待している通り)表示されます。
  
シートorセルのデータをリフレッシュする様なVBAのコマンドを、何方かご存知ないでしょうか?

回答
投稿日時: 23/02/13 11:53:05
投稿者: 半平太

テキストで渡っていると言うことなんですかねぇ・・
 
代入後、 としてみたらどうですか?
     ↓
.Value = .Value

投稿日時: 23/02/13 12:27:25
投稿者: マロさん

ありがとうございます。
できました!
 
>テキストで渡っていると言うことなんですかねぇ・・
 
きっとそうなんです。
 
>代入後、 としてみたらどうですか?
>    ↓
>.Value = .Value
 
具体的には、C#ですが…
 xlRange.Value = Data;      //レンジに2次元配列の値(テキスト)を代入
 xlRange.Value = xlRange.Value; //設定した書式をテキストに適応する為に再代入
としました。
 
「.Value = .Value」はエクセル側の知恵ですね。
ありがとうございます!!!