dポイントプレゼントキャンペーン実施中!

エクセルで請求書を作成しています。

日付しか入れない特定のセル列に、「01/12」(mm/dd)の形で表示させたいのですが、途中までは問題なく使えています。

ちなみに、下記のVBAも設定しています。

他に、このエクセルに、請求書を印字の際に、不要な計算式などを非表示するために、マクロボタンを作ってそれをクリックしたり表示したりして、使っています。

それが原因なのかはわかりませんが、どのタイミングかもよくわかりませんが、mm/ddで表示になっていた日付が急にシリアル値になって困っています。

今まで独自で色々な方法を調べましたが、どうしてシリアル値になるかわかりません。

windows8を使用しています。何かの設定をすれば、シリアル値にならないのでしょうか?

原因がわからない為、どのタイミングでそれがなるのかもよくわからず、途方にくれています。

ここ何か月か使っていて、マクロボタンを教えて表示・非表示にしたりすると、翌日にシリアル値になっていたりしています。マクロボタンか何か関係あるのでしょうか?

セルの書式設定でも「mm/dd」を設定していて、保護でも「ロック」にチェックを入れています。

シリアル値になると、いつも手動で入力して変更しています。

もし何か良い方法があれば、教えていただけると助かります。

Function Mystr(myRng As Range) 'この行から//
Dim c As Range, str As String, buf As String
For Each c In myRng
If c.NumberFormatLocal = "mm/dd" Then
str = Format(c, "mm/dd")
Else
str = c
End If
buf = buf & str
Next c
Mystr = buf
End Function 'この行まで//

A 回答 (1件)

こんばんは!



お示しのコードはおそらく当方が投稿したコードだと思います。
コードの内容だけだとセルの表示形式を判断しているだけで
表示形式には手を付けていません。
すなわち原因はユーザー定義関数ではないように思われます。

他のマクロがどのようなコードになっているのか判らないのですが
そちらの方に原因があるのでは?

お役に立てなくてごめんなさいね。m(_ _)m
    • good
    • 0

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