03-02 エクセルのシート名から日付を取得する
エクセルVBAや関数の備忘録 1
◆目的:シート名から日付データを生成し、セルに代入。
方法:エクセルの関数を利用
例えば下の図のように月単位の作業日報があったとします。1ファイルに1か月分を入力するとして、日数分だけシート名に「月日」が入力されているとします。そのシート名から関数を用いて日付に変えて表示しようとしました。
VBAもマクロを使わず、アクティブなシート内で実現するにはどこかに2個のセルを用意するだけです。
今回はセル番地「O2」と「P2」に表示していますが、使用していないどこか(赤丸の楕円AでもBでも)に、このセルに埋め込んで文字色を背景色と同一にすれば目立たなくてイイと思います。
![マクロウインショット](https://asamai-cts.jp/sample/wp-content/uploads/2015/03/8bc0c0b81b54e34f74788bd7f6e7fc90-640x325.jpg)
図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つだけです。こんなに簡単に出来るのでぜひ皆さんも使って見て下さい。
▼ ブログランキングに参加しています。よろしかったらポチッとお願いいたします。
投稿者プロフィール
最新の投稿
備忘録2022年2月4日拡張子とは、何ですか?
備忘録2021年9月22日VBAで出席名簿を作ってみた
HP作成講座2021年9月6日WordPressローカル環境構築 その1
お知らせ2021年6月1日2021年後半のカレンダーをアップロードしました