システム言語が「ロシア」に変更されている間に現在の月を取得しようとすると、「??????」が表示されます。
コード:
Dim presDate as String
presDate = Format(Date,"ddmmmmyyyy")
私の上記のコードは「??????」として出力します。私はExcel 2010を使用しています。答えを提案してください。
コントロールパネル-地域および言語オプションで非Unicodeプログラムの言語をロシア語に変更した場合、キリル文字はデバッグウィンドウを含むVBEエディターで正しく表示されるはずです。
このコードは機能します。これは「=mydate(date_value)」と呼ばれます。ここで、date_value は日付を含むセルへの参照、「11/2/96」などの文字列値、システムの日付を返す Excel 関数です。現在の日付 (例: 「=mydate(TODAY())」または「=mydate(NOW())」)。
Option Explicit
Function mydate(cel As Variant) As String
If (TypeName(cel) = "Range") Then
mydate = Format(cel.Value, "mmmm dd yyyy")
ElseIf TypeName(cel) = "String" Then
mydate = Format(datevalue(cel), "mmmm dd yyyy")
ElseIf TypeName(cel) = "Double" Then
mydate = Format(Round(cel, 0), "mmmm dd yyyy")
Else
mydate = CVErr(xlErrValue)
End If
End Function
イミディエイトウィンドウでこれを行うと
Debug.Print Format(now,"ddmmmmyyyy")
私が得る即時ウィンドウで
26???????2013
そして私がするとき
cells(1,1)=Format(now,"ddmmmmyyyy")
A1
私が得るセルで
26февраля2013
VBA IDE は非ラテン文字を処理できないと思います (おそらく ASCII に限定されます)。