久々にマクロのお話です。
先日会社で2020年4月からのデータを1ファイルずつ抽出し、
抽出したcsvファイルを1つのExcelファイルに統合して
vlookup関数を使って月別推移にできないという相談を上司が受けまして
抽出自体は基幹システムからすぐできるのですが、
データの取り込みがうまいこと行かず・・・・
パワークエリとか使えたら簡単にできるはずなのになーっと思いつつ
結局各月ごとのシートを作成し、1つ1つデータ貼って、
index/match関数(vlookupはファイルが重くなるので基本関数はすべてindex/match関数で代替してます)を使うわけですが
まぁ各シートの名称がそのまま『Sheet1』・『Sheet2』とかなってるわけで
どの月のデータがわからん!!
しかも関数あてるときに、indirect関数を使うわけですが、
もっとわかりやすいシート名称にしたい!!
という2つの要望が出たので、シート名称変えちゃおうと思い
いそいそと一発で名称変更できるマクロないかと調べて名称変更できるVBAを作りました。
- Sub シート名変更()
- Dim a As Integer
- For a = 1 To 24
- Worksheets(a).Name = Cells(a, 1)
- Next a
- End Sub
手順としては変更したいシートをExcelのシートにあるプラス(+)でどんどん作成
上記例では、2年間分のデータを持たせるために24シート使う想定
Sheet1~Sheet24まで作成できたら
Sheet1 「A1」セルに変更後のシート名称を入力し、A2~A24まで同様に処理
ちなみにA1→Sheet1、A2→Sheet2、、、、A24→Sheet24といった具合
あとはマクロ実行すれば24シートの名称変更が一瞬で完成!!
ぜひ名称変更に悩んでいれば使ってください。
やっぱりパワークエリとか学んだほうがいいよなぁ・・・
日経にも記事なってたけど、これからはやっぱりデジタル人材が重宝される時代なわけだ。
https://www.nikkei.com/article/DGXZQODL21BE40R21C21A2000000
一時期pythonを勉強しようと思ったけど挫折した一人です・・・
再チャレンジも必要かなと思いつつ・・・・・
会社は29日まで。年末年始休暇短いなぁ・・・
会社に依存しない生き方を考え始めた2021年。
実行に移せる2022年にしたい。