こんにちは、ヒガシです。
今回はVBAを使って、以下のようなエクセルシート上のデータに対して、
こんな感じでノイズを一発で加える方法をご紹介していきます。
それではさっそくやっていきましょう!
VBAの実行環境構築
今回はVBAを使いますので、使ったことがない人はまずは環境構築から進めましょう。
以下でやり方を解説していますので、参考にしてみてください。
エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説
データにノイズを加えるサンプルVBAコード
それでは冒頭に紹介したよう、シート上のデータにノイズを加えるサンプルコードをご紹介します。
※1:データはもとのデータ領域に上書きされます。実行前にかならずバックアップは取っておきましょう。
※2:このコードは以下の画像のようにB2セルからC**セルまでの処理に対応しているものです。もしデータの存在領域が異なる場合は適宜コードを修正してください。
Sub add_noise()
Dim i As Integer, j As Integer
Dim col_num As Integer, endrow As Integer
Dim noise_level As Single
'データの列数を指定
col_num = 2
'ノイズの度合を指定
noise_level = 10
'ノイズ追加処理
For i = 1 To col_num
'最終行の取得(B列の最終行を取得する)
endrow = Cells(2, 2).End(xlDown).Row
For j = 2 To endrow
Cells(j, i + 1) = Cells(j, i + 1) + Rnd() / 100 * noise_level
Next
Next
End Sub
ノイズの度合いを変更して実行してみる
まずは先ほどのコードとまったく同じであるnoise_level=10で実行した結果です。
次はnoise_level=30で実行した結果です。
いい感じにノイズが大きくなっていますね。
というわけで問題なく動作していそうです。
おわりに
というわけで今回は、エクセルVBAをつかってデータにノイズを加える方法をご紹介しました。データ処理の際などにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント