VBAのFormatを用いて、m月d日形式の文字列を取得したい

Visual Basic83閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

皆様、迅速な回答に感謝いたします。 おかげさまで、無事に思い通りの動きをしてくれるマクロを作成できました。 ベストアンサーは非常に悩んだのですが、具体的な解決法を示してくださったこの方をベストアンサーとさせていただきました。

お礼日時:6/28 19:20

その他の回答(3件)

0

こんにちは。 Sub experiment() Dim i As String i = Format(Cells(1, 1), "m月d日") Debug.Print i Cells(1, 2).Value = "'" & i '<=== シングルクォーツ追加 End Sub エクセルのセルは、日付のような文字列を設定するとき、自動変換します で、日付とわかっている場合は、シングルクォーツを追加するのが、 方法の一つ。 あとは、「書式を@で文字列に切り替えてから、」のどちらかです

0

>”m月d日”形式の文字列を取得する方法は何かないでしょうか。 i = Format(Cells(1, 1), "m月d日")できっちり取得してるんです。 でもエクセルが勝手に変換してしまうんです。 例えばメモ帳から6月1日の文字をエクセルのyyyy/mm/ddに設定されたセルのコピペすると2022/06/01にエクセルが勝手に変換します。 なので取得する方法を探すのではなくエクセルに勝手に変換するのを止めさせる方法を探します。 こういうので大きな問題というとCSVファイルを開くと電話番号の最初の0が消えてしまう事とか、IDの1-1が勝手に日付になるとか、ほかにも結構あります。 貼り付ける前にセルの書式を文字列にしておくとか、がよく知られた解決法ですね。エクセルの暴走を止める方法は今のところないようです。

0

エクセルならセルには年月日を入力し セルの書式設定(m"月"d"日") で m月d日 と表示させるべきです。 VBAのFormatで仮に m月d日 と出来たとしてもそれは日付としての意味を持たず日付関数を使ったような処理が出来なく成ります。