3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

「H30.8.1」といった元号表記でエクセルに記入したい

2019年8月5日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

暑いですね。
そして、僕は、今、仕事が溜まりまくっています (-_-;

にも関わらず、なのですが…。週末、仙台に行ってきました。

鹽竈神社(しおがまじんじゃ)という神社で、以下の冊子を見かけ、購入しました。

「鹽竈神社 算額解義」


「算額」とは?

以下は、リンク先の記事から引用。

江戸時代には娯楽としても楽しまれ、日本独自に発展した数学「和算」。
人々は問題が解けたことを神仏に感謝し、神社や仏閣に和算の問題を奉納しました。
その解法を記して、神社や仏閣に奉納する絵馬のことを「算額」と言い、中には問題の解答を付けずに奉納されているものもあります。
鹽竈神社に現存する5面の算額は千葉胤秀(たねひで)ら当時の優れた和算家によって奉納されたもので、江戸時代の優れた算額のひとつに数えられます。

<引用元> http://sugimurajun.shiomo.jp/archives/5450

ということで、購入したのは、小説原作で漫画、映画にもなった「天地明察」でも登場した「和算(日本で発達した算数・数学)」の、未解決(?)のお題に取り組んだ、という同人誌。
僕は別に数学得意じゃなんですが、こういうキワモノコンテンツはつい買ってしまいます (^^;


ところで、今回は、エクセルマクロで日付を入力するときの、やり方について。

以下のような相談をいただきました。
(可読性を高めるため、多少改変)

VBAで顧客管理システムを作成しているところです。

リストボックスから氏名を選んでテキストボックスにデータを表示するところまではできました。
実行ボタン(コマンドボタン)を押すとデータをセルに書き込むようにしたいと思っています。
ところが、生年月日(日付)表示形式「H38.2.17」だけがうまくいきません。

この相談に回答してみます。

ところが、生年月日(日付)表示形式「H38.2.17」だけがうまくいきません。

【以下は、新しいシートを作り、そこで試してください】

単に「H38.2.17」と書き込みたいということでしたら、以下で十分ですね。


Sub sample1()
  Range("B1").Value = "H38.2.17"
End Sub

ですが、おそらくそういうご質問ではないのだろうと。

以下のようなプログラムを実行した結果、入力先のセルに「H30.7.30」というような表示をしたいということだろうと推察します。

 '先頭の半角「H」は「平成」の意

Sub sample2()
  Range("B2").Value = #7/30/2018# '[1]
End Sub

なお、「平成38年」は存在し得ません。
平成が38年まで続いたとしたら、「2026年2月17日」が「平成38年2月17日」になったことでしょう。
ですが、今年5月から元号が令和になったので、令和の時代がしばらく続くとすると、「2026年2月17日」は「令和8年2月17日」です。

生年月日がかなり先の未来の日付というのも、通常の事務仕事ではあまり見られない例です。

あと、いただいたご質問ですと、先頭の「H」が半角ではなく、全角です。

等々考えると本当は「H38.2.17」というのは過去の日付のどこかのことか?ということは気になりますが、そういう問題は無視して、まずは、前記[1]のコードで入力先セルに「H30.7.30」(先頭の「H」は半角)と表示する方法を示します。

結論から書くと、以下のとおりです。

Sub sample3()
   Range("B3").NumberFormatLocal = "[$-ja-JP]ge.m.d;@" '[2]
   Range("B3").Value = #7/30/2018#
End Sub

[2]の部分では、セルの書式を設定しています。
自動記録をしつつ、ご所望の書式になるよう、エクセルのダイアログからセルの書式設定をしてください。すると、[2]のコードを作るのに必要な部品が得られます。

自動記録をしながら書式を設定すると、おそらく、以下の類のコードを得られるでしょう。

Sub Macro1()
 '
 ' Macro1 Macro
 '
  Selection.NumberFormatLocal = "[$-ja-JP]ge.m.d;@"
End Sub

[2]のようなコードは、これを参考に(というか、必要な部分をコピペしてきて)実装します。

なお、以下のマクロを実行すると、セルB4の表示は、「R8.2.17」となります。

Sub sample4()
   Range("B4").NumberFormatLocal = "[$-ja-JP]ge.m.d;@"<br />
   Range("B4").Value = #2/17/2026#<br />
End Sub</p>

【参考無料動画】

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド