2021.03.20仕事をしているとエクセルシートに大量の画像が張り付けられている、という状況は多いと思います。「明るさを変更したい。「邪魔だから全部削除したい。」といった、よくありそうなニーズをVBAを使って解決する方法をご紹介していきます。具体的には以下の7つの状況を解決する方法をご紹介します。コードをコピーして実行するだけですので、誰でも簡単に実行できるはずです。あなたのニーズにあうものをコピーして実行してみましょう。冒頭に説明した作業は、VBAをつかって実行していきます。VBAを使ったことがない人は以下の記事を参考にVBAを使える環境を整えておきましょう。※VBAはエクセルにもともと備わっている標準機能です。した設定で簡単に実行できます。チャレンジしてみましょう。スポンサーリンク画像を一括加工するVBAコードVBAの環境構築が終わったところで、本題に入っていきましょう。冒頭にも説明したとおり、以下の7つの作業にわけてご紹介していきます。1明るさを変更2コントラストを変更3サイズを変更4背景を透明化5トリミングを行う6外枠を追加する7全部削除また、今回は以下の画像のようにシート上に画像が6枚並んでいる状態で処理を実行していきます。※同じ画像を用いていますが、もちろん違う画像が張り付けられていてもOKです。以降でいくつもコードを紹介していきますが、実行するごとに、この画像に戻したうえで、次の処理を実行していくことにします。それでは実際のコード紹介に移りましょう。明るさを変更する方法まずは明るさを変更する方法です。Subたったのこれだけです。※コード中の0.8という数値が明るさの度合いを調整する部分です。0~1の範囲で設定します。)このコードを実行すれば、以下のように明るい画像に一括変更してくれます。問題なく実行できましたね。さぁどんどんいきましょう。次はコントラストを変更する方法です。Sub※コード中の0.8という数値がコントラストの度合いを調整する部分です。0~1の範囲で設定します。)こいつを実行すると以下のようになりました。最初の画像との違いがよくわかりませんが、なんとなくシャープになった感じですね。わかりにくいんで最初の画像ものせておきます。実行前の画像ちょっとわかりにくかったですね・・・。次は画像のサイズを一括変更する方法です。Sub※コード中の100というところが、画像の大きさを調整する部分です。(ここは実行しながら調整するのが良いでしょう。)こいつを実行すると以下のようになりました。今回はわかりやすく変化しましたね。次は背景を透明にする方法です。Sub※コード中のRGB(0,0,0)の部分で背景色を設定しています。(今回は真っ黒の領域を透明にするようにしています。)真っ白領域を透明にしたい場合は、RGB(255,255,255)に変更しましょう。こいつを実行すると以下のようになりました。黒い部分がなくなって、背景の格子線が見えるようになっていますね。⇒しっかりと透明になっていることが確認できました。次はトリミングを行う方法です。Sub※コード中のCroptop=30のところでトリムする領域を設定しています。(今回は上側を30ピクセル分除去するように設定しています。)トリムする辺を変更したい場合は、Croptopの部分を以下のように変更しましょう。上をトリムする:Croptop下をトリムする:Cropbottom左をトリムする:Cropleft右をトリムする:Croprightこいつを実行すると以下のようになりました。実行後の画像しっかり各画像の上側が少し切り取られていますね。次は画像に外枠を追加する方法です。Subここは少し面倒で、1線を追加2線の色を指定3線の太さを指定という処理を行う必要があります。そのためさきほどと少しコードの書き方が違っていますが、まぁ気にせずコピーすればOKです。0)を変更すれば、線の色を変更できます。5のところの数値で線の太さを設定しています。⇒適宜あなたの状況に応じて設定してください。先ほどのコードを実行すると以下のようになりました。実行後の画像しっかり外枠が追加されていることが確認できます。最後はシート上にある全画像を削除する方法です。Subこのコードは特に調整項目はありません。こいつを実行すると以下のようになりました。載せるまでもありませんが・・・。いずれにせよ、冒頭に紹介した7つの処理をすべて実行できることが確認できました。スポンサーリンクおわりにというわけで今回はエクセルシート上にある複数画像に対して、様々な処理を一括適用する方法をご紹介しました。このページをブックマークしていただき、いつでもコピーできるようにしておきましょう。このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。⇒興味をもった方は【ヒガサラ】で検索してみてください。確実にスキルアップできるはずです。最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。コピーヒガシをフォローするスポンサーリンクヒガシヒガサラblogスポンサーリンクエクセルVBA【エクセルVBA】指定フォルダ内にあるファイルの個数を数える方法!このページでは、フルパスで指定したフォルダ内にあるファイルの個数をVBAを使って数える方法をご紹介していきます。今回は私のブログで過去に使用した画像を格納...エクセルVBA【エクセル】線形補間を一発算出!傾き、切片必要なし!VBA利用まで!線形補間を算出する際に、散布図や近似式を作って...という作業を行っている人は多いのではないでしょうか?この記事ではそんな作業なしに、一発で線形補間を算出する方法をご紹介しています。エクセルVBA【VBA】配列データをテキストファイルに表形式で出力する方法!この記事では、VBA上で作成した配列を表形式を維持したまま、テキストファイルに出力する方法をご紹介しています。記事中のコードをまねるだけ!エクセルVBA【VBA】テキストボックスを作成する方法!装飾まで完全自動化!この記事ではエクセルにおけるテキストボックスの作成から装飾までをVBAで自動実行する方法をご紹介しています。テキストボックスを多用している人はぜひご覧ください。エクセルVBA【VBA】マクロの処理時間を計測する方法!記事中コードをコピーするだけ!この記事では、マクロの処理時間を計測するためのマクロをご紹介しています。処理の高速化作業を行う際にぜひご活用ください。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ご指摘ありがとうございます。修正させていただきましました。【python-openCV】背景画像に別の画像を合成する方法!やぎ2023.05.29こんにちは。書く必要があると思います。【python-openCV】背景画像に別の画像を合成する方法!サトシ2023.05.11承知しました。アドバイス本当にありがとうございます。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!ヒガシ2023.05.11/はフォルダの階層が変わることを意味しますので使えません。substitute関数などを使って別文字に変換してから実行すると良いと思います。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!サトシ2023.05.10何度もすみません。/を使うと出来ないみたいです。2001-001-1/4とかにしたいのですが、ファイルが見つかりませんとかパスが無効ですとなります。検索タイトルとURLをコピーしました。