03-02 エクセルのシート名から日付を取得する

エクセルVBAや関数の備忘録 1

◆目的:シート名から日付データを生成し、セルに代入。

方法:エクセルの関数を利用

例えば下の図のように月単位の作業日報があったとします。1ファイルに1か月分を入力するとして、日数分だけシート名に「月日」が入力されているとします。そのシート名から関数を用いて日付に変えて表示しようとしました。
VBAもマクロを使わず、アクティブなシート内で実現するにはどこかに2個のセルを用意するだけです。
今回はセル番地「O2」と「P2」に表示していますが、使用していないどこか(赤丸の楕円AでもBでも)に、このセルに埋め込んで文字色を背景色と同一にすれば目立たなくてイイと思います。

マクロウインショット

図1 セルの埋め込み場所

まず、セル番地「O2」にシート名を取得するためのコードを下の欄からコピペしてエクセルのセルに貼り付けます(どこでもよい)。下のコードに「A3」とありますが、これはアクティブなシート内のどれでもよいセルを引数としていますので「A3」でなくてもいいのです。

="2015"&RIGHT(CELL("filename",A3),LEN(CELL("filename",A3))-FIND("]",CELL("filename",A3)))

隣の「P2」セルには「O2」の内容を文字列抽出関数を使って代入しています。それを表示したいセルに引っ張ってくるだけです。※「O2」「P2」のセルは差支えない所(例えばAやBのあたり)に置いて大丈夫です。

=LEFT(O2,4)&MID(O2,5,2)&RIGHT(O2,2)

上のコードを「P2」セルにしたら、表示したいセル(上の図の青い枠内)に下記のコードを入れれば完成です。

=DATEVALUE(TEXT(P2,"0000!/00!/00"))

この方法を使えば必要なセルは2つだけです。こんなに簡単に出来るのでぜひ皆さんも使って見て下さい。

▼ ブログランキングに参加しています。よろしかったらポチッとお願いいたします。

にほんブログ村 地域生活(街) 東北ブログ 横手情報へ にほんブログ村 料理ブログ 弁当男子へ にほんブログ村 IT技術ブログ ホームページ・サイト制作支援へ

Follow me!

投稿者プロフィール

近江公人
近江公人asamai-cts Owner
あさまいCTSの代表オヤジです(2021年現在=60歳)
横手市中央町で「ラーメン与市」を2012年まで約15年間を経営。
その後、「横手市雇用創出協議会 実践支援員」を経て、一時会社勤めをするが体調を崩し、再度、自営業の世界に戻る。
現在の「あさまいCTS」は2019年1月に起業。業務内容は主に、パソコンの修理、出張スマホ・パソコン教室、ホームページ作成 その他何でも屋みたいなものです・・・