2017-08-10 5 views
0

ここには小さな問題があります。私は日付のデータがヨーロッパの形式の文字列として表示されるアプリケーションを持っています。私は、それをDateTime値に変更しようとする、標準のAmericas形式に変換するための簡単なVBAスクリプトを作成しました。代わりに、フォーマットを変更したら、Excelが自動的にそれを行いました。ここまでは順調ですね。問題を解決するには、日付を表示するだけです。セルをクリックすると日付と時刻が値として表示されます。たとえば、セルには6/8/2017の値が表示されますが、数式バーに表示される値は2011年6月8日12:56:07 PMです。VBA経由でExcelに表示されるコンテンツを変更する

これは私のアプリケーションにとって技術的には十分ですが、完全な値をセルにリストしたいと考えています。私はこれがおそらくExcelのプロパティを変更することによって行うことができることを知っています、私はちょうど右に設定されたExcelを持っているユーザーに少し気をつけます。 VBAでセルまたは列に完全な値を表示する方法があるかどうかを知りたい。

また、Excelの「自動」機能は信頼できません。誰かが同じ方法でExcelを設定していない場合に備えてです。これらを無効にする方法はありますか?

+0

録音マクロあなたの必要な表示にセルの書式を設定しながら - あなたがあなたにそれを組み込むことができますコード。 –

+2

VBAでは、セルの 'NumberFormat'プロパティを使用して値を表示する方法を設定できます( '" mm/dd/yyyy hh:mm:ss AM/PM "形式と同じように思えます)。明らかに、ExcelのFormat Cellsオプションで同じことを行う方が簡単かもしれません。 – YowE3K

答えて

0

DATEVALUEおよびTIMEVALUEの後に、選択したセルのNumberFormatプロパティを使用できます。コードを投稿すると、提案を提供するのが簡単になりますが、ここには何も試してみることができます。

Sub changeDateFormat() 
' 
' changeDateFormat Macro 
' Assuming the initial active cell (e.g., "A1") is a text of a date 
    Range("A1").Activate 

    While Not IsEmpty(ActiveCell) 
     ActiveCell.Offset(0, 1).Formula = "=DATEVALUE(RC[-1]) + TIMEVALUE(RC[-1])" 
     ActiveCell.Offset(0, 1).NumberFormat = "m/d/yy h:mm;@" 
     ActiveCell.Offset(1, 0).Activate 
    Wend 

End Sub 
関連する問題