等価騒音レベル(Leq)計算用マクロ

工場などの現場では、年に2回ぐらい、環境測定なるものが行われます。
濃度分析などが必要な者は測定業者に丸投げするのが普通ですが、照度や騒音など簡単に測れて資格もいらないものについてはまあ自分とこでやったほうが安上がりなので、自前で照度計や騒音計を用意して測ることも多いでしょう。
でも、照度はともかく騒音の場合、いざデータ分析をする際にちょっと困ってしまいます。
なにやら、測定した値から「等価騒音レベル」とかいうものを算出し、その値を使って環境の評価をしろとか書いてあるのですが、その計算式が

https://www.city.yokohama.lg.jp/kurashi/machizukuri-kankyo/kankyohozen/kansoku/kanshi_center/yogo/soon/laeq.html

うーん、いやどうやってexcelの計算式にするのよこれ
な感じだったりするので…

で、当然「等価騒音レベル excel 計算」とかで検索するのですが、簡単に使えるものが全然見つからないのです。

んで、えーいもういいやわからん!適当に書いとけ!(猫案件

それらしい値で記録が埋められることになります(なりません

というわけでしょうがないので自分で書きました。

Sub souon() '等価騒音レベル(Leq)計算用マクロ
   Dim a As Long
   Dim b As Long
   Dim mrow As Long
   Dim mcol As Long
   Dim otokei As Double
   Dim datas As Long
   Dim koumoku As Long
   datas = 4 '生データを入力する最初の行
   koumoku = 2 '項目を入力する最初の列
   ActiveSheet.Cells.ClearFormats
   mcol = Cells(datas, Columns.Count).End(xlToLeft).Column
   For b = koumoku To mcol
       mrow = Cells(Rows.Count, b).End(xlUp).Row
       Range(Cells(datas - 2, b), Cells(mrow, b)).Borders.LineStyle = xlContinuous
       otokei = 0
       For a = datas To mrow
           otokei = otokei + Application.WorksheetFunction.Power(10, Cells(a, b).Value / 10)
       
       Next a
       otokei = otokei * (1 / (mrow - datas + 1))
       otokei = Application.WorksheetFunction.Log10(otokei) * 10
       Cells(datas - 1, b).Value = otokei
   Next b
End Sub

まあまあ使いやすいと思うので、ぜひ試してみてください。
レイアウトは以下の図のようにします。ボタンにはマクロを登録してください。

画像1

テキストボックス内の内容は以下の通りです。

使い方
・2行目は測定場所を記入して下さい。測定場所数は、表の許す限りOKです。
・3行目は計算結果が出力されるので空白にしておいて下さい
・4行目以下に生データを縦に記入して下さい。データ数は表の許す限りOKです。
・計算ボタンを押すと、計算結果が3行目に表示されます。
・空白セルは0で計算されてしまうので、上に詰めてデータを入力して下さい。
・この説明文は消してもOKです。
・あらかじめ入力してある文字や数値は例なので消しても大丈夫です。


この記事が気に入ったらサポートをしてみませんか?