VBAのFormatを用いて、m月d日形式の文字列を取得したい
VBAのFormatを用いて、m月d日形式の文字列を取得したい yyyy/mm/dd形式で入力されているセルの値を変数に取り込んだのち、Formatを使って”m月d日”形式の文字列に変換し、別セルに貼り付けるマクロを作ろうとしています。 ところが、うまくいきません。 ”m月d日”ではなく”m月d日(aaa)”など、ほかの形式であればうまくいくのに、”m月d日”にした途端にうまくいかなくなります。 マクロ終了後、セルには”〇月〇日”と文字列で入っていて欲しいのに、yyyy/㎜/ddのままなのです。 ほかの形式、例えば”〇月〇日(曜日)”などはうまく文字列として入ってくれるのですが…。 以下、コードです。 Sub experiment() Dim i As String i = Format(Cells(1, 1), "m月d日") Debug.Print i Cells(1, 2).Value = i End Sub Debug.Print で確認したときには、イミディエイトウィンドウにちゃんと”〇月〇日”と表示されるのですが、セルに代入した途端yyyy/㎜/ddの形式になったうえで、セルにユーザー定義書式設定が勝手にかかるようです。(見かけ上は〇月〇日表記になっていても、セルの中にあるのはyyyy/㎜/dd) このコードを改善、もしくはこの方法でなくとも、yyyy/㎜/dd形式から”m月d日”形式の文字列を取得する方法は何かないでしょうか。 よろしくお願いいたします。
Visual Basic・83閲覧
ベストアンサー
Cells(1, 2).Value = i これの前に Cells(1, 2).NumberFormatLocal = "@"
質問者からのお礼コメント
皆様、迅速な回答に感謝いたします。 おかげさまで、無事に思い通りの動きをしてくれるマクロを作成できました。 ベストアンサーは非常に悩んだのですが、具体的な解決法を示してくださったこの方をベストアンサーとさせていただきました。
お礼日時:6/28 19:20