【エクセルVBA】シート上のデータに任意の大きさのノイズを加える方法

こんにちは、ヒガシです。

 

今回は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=10で実行した結果

 

次はnoise_level=30で実行した結果です。

noise_level=30で実行した結果

 

いい感じにノイズが大きくなっていますね。

というわけで問題なく動作していそうです。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかってデータにノイズを加える方法をご紹介しました。データ処理の際などにぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました