「エクセルの画像を大量に張り付けたものの、ちょっと暗くて見にくいな。」
「明るさを調整すれば問題なさそうだけど、ひとつひとつ修正するのは面倒だ。」
この記事では、こんな悩みを一瞬で解決する方法をご紹介します。
記事中のコードをコピーして実行するだけですので、誰でも簡単に実行できるはずです。
それでは早速やっていきます!
紹介するスキルの概要説明
まずはじめに、この記事で紹介する内容を簡単にご説明しておきます。
今回は以下の画像のように画像がエクセルシートにたくさん並べられている状況を想定しています。
※実際はいろいろな画像を張り付けていると思いますが、今回は面倒なので同じ画像を張り付けています。別の画像でも問題なく動作しますのでご安心を。
これらの画像を一瞬で以下のようにすこし明るめに一括変更していきます。
※もちろん暗めに変更することも可能です。
あなたのやりたいことと一致していれば、ぜひ続きをご覧ください。
VBA環境を構築しておく
先ほどの作業は、VBAをつかって実行していきます。
VBAを使ったことがない人は以下の記事を参考にVBAを使える環境を整えておきましょう。
※VBAはエクセルにもともと備わっている標準機能です。
ちょっとした設定で簡単に実行できます。
ぜひチャレンジしてみましょう。
シート上の画像の明るさを一括変更するVBAコード
VBAの環境構築が終わったところで、さっそくVBAコードを記述していきましょう。
以下が冒頭に説明した作業を実行してくれるVBAコードです。
◆VBAサンプルコード
Sub change_brightness()
For i = 1 To 6
ActiveSheet.Shapes(i).Select
Selection.ShapeRange.PictureFormat.Brightness = 0.8
Next
End Sub
たったのこれだけです。
非常に簡単ですね。
このコードを実行すれば、以下のように明るい画像に一括変更してくれます。
☆変更前
変更後
サンプルコードの解説
念のため、あなたの状況に応じて、作業内容を変更できるように、先ほどのコードの要点を簡単に解説しておきましょう。
コード解説①画像の枚数指定
基本的にこのコードでは、ある画像を一枚選ぶ⇒明るさを変更する、という一連の作業を画像の枚数分繰り返しているだけです。
それぞれの画像には、張り付けられた時点で1から順番に番号が割り振られているので、その番号を順番に呼び出していくことで、それぞれの画像を選択していくことが可能です。
(ActiveSheet.Shapes(i).Selectがここに該当します。)
今回はエクセルシート上に6枚の画像があることがわかっているため、画像の呼び出し回数を6回に設定すれば、すべての画像に処理を適用できるというわけです。
(For i = 1 to 6⇐この部分ですね。)
もし10枚画像があることがわかっていれば、コード中の6を10に変更しましょう。
仮に何枚あるかわからない場合は、適当に大きな数字を入れておいてもOKです。
(実行したらエラーがでますが、終了を押せばOKです。)
コード解説②画像の明るさ変更方法
基本的に画像の明るさを変更するには、ある画像を選択し、
Selection.ShapeRange.PictureFormat.Brightness = 明るさ度合
というコードで実行することが出来ます。
この明るさ度合は、読み込んだ生の画像で0.5になっており、数値を大きくするほど明るくなり、小さくするほど暗くなります。
先ほどのサンプルコードでは、ここを0.8にしていましたが、0.3に変更すると以下のような結果が得られました。
すこし暗くなったことがわかると思います。
変更する可能性があるところはこのくらいでしょう。
ぜひあなたの状況に応じてご活用ください。
おわりに
というわけで今回は
◆エクセルシート上の表をまるごと変数化する方法
◆その変数の中から欲しいデータを取り出す方法
についてご紹介しました。
知っておくだけで、コードの記述量を大幅削減できることもありますので、ぜひマスターしておきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント