こんにちは,年300日を研究室で過ごすAYATOです.
そろそろ,研究生活も3年目に突入します.
さて,去年に以下のツイートをしました.
今回は「研究データまとめにおける時短術」の話です.
使用頻度が高く,使っていて気持ちのいい技を二つだけ紹介しますね.
気持ちのいい技2選
簡単なほうから説明しますね.
Ctrl + Y (やり直しだけじゃない,秘めた応用技)
Ctrl + Yで元に戻す.という操作は知っていると思うので,その他に使える秘めた応用沢にについて早速紹介していこうと思います.
✔Excelの枠の色を何度も変更したい!
枠を黒く塗りつぶしたい時に,毎回青枠の部分をクリックしていては時間がかかり,無駄な時間が発生してしまいます.
【Ctrl+Y】 or 【F4】を押すことで,瞬時に枠の色を黒く塗りつぶすことができます.
✔模擬実験
下図のように,実際に9箇所のセルに黒く色をつけるとします.
✔実際に画像変換している動画
通常の場合:22.880秒 / ショートカット利用時:12.251秒
45%の動作時間を短縮することが出来ました!
Wordで画像を全て同じにしたい!
報告書をまとめるときに非常に役立ちます.
皆さんは,Wordで画像を沢山貼り付けた際,こういうことをしてはいませんか?
- 画像サイズをトリミングして変更
- また別の画像もトリミングで変更
- また別の画像も
- また別の
- また
- また
- ...
- ...
永遠とやっていたら,なんだか悲しくなってきませんか??
それを一発で解決してしまう方法をご紹介します!
実は【Ctrl+Y】 or 【F4】を使うと可能なんです!
✔手順を紹介しますね
- 挿入タブから画像を挿入
- 1つ目だけ,トリミングで編集
- 画像の上で右クリック
- レイアウトの書式設定
- OKを選択
- 同じサイズにしたい画像をクリック
- Ctrl + Y or F4
これを行うことで圧倒的な速さで終わらせることが出来ます.
注:毎回一枚目の画像は必ず【挿入タブ】から画像を挿入してください
✔実際に時間を測定している動画
18枚の画像を全て同じサイズに変更する際に,ショートカットを利用しない場合と利用下場合で比較しました.
通常の場合:84.001秒 / ショートカット利用時:26.306秒
70%の動作時間を短縮することが出来ました!
Excelのグラフを全て一発で画像保存する方法
使いこなすためにいくつかの設定を行わないといけないので,頑張っていきましょう!!
Excelを使っている人は多くいると思いますが,マクロ機能を使っている人はそれほど多くないと思います.
今回はこのマクロ機能を使って一発で画像変換していこうと思います.
マクロ知らない人でも大丈夫です.言われたとおりにしておけば,うまく動さするはずです.
✔マクロを使って自動化させてしまおう!
マクロって何?よくわからない.しっかりそこも理解したい!理解しないと気が済まない!っていう人はこちらを見てください.
ayatosnote.hatenadiary.com
とにかく画像変換したいんだ!!という方はそのまま進んでください.
✔手順を紹介しますね
- 開発タブをクリック
- Visual Basicを選択
- 挿入から標準モジュールを選択
- 以下のコードをOption Explicit下に入力
- 開発タブのマクロを選択
- コード名を実行
開発タブが無い人へ
開発タブの表示の仕方に関してはこちらをご覧ください
ayatosnote.hatenadiary.com
✔開発をダブルクリック
開発タブを表示することが出来たなら,
【ホーム】から【開発】タブを選択してください.
✔Visual Basicを選択
一番左にあるので,選択してください.
Visual Basicを選択すると,このような画像が出てきます.
✔挿入から標準モジュールを選択
メイン画像に,Option Explicit という文字がでてくると思います.
気にせず,したページにあるソースコードをコピーして,貼り付けてください.
GraphToPng()というのが実行名になります.
そしたら,【Visual Basic】の右側に,【マクロ】というタブがあるのでそこを選択してください.
下図のような画像が出てくるので,そこに書いてある実行名を選択して実行してください.これだけで完了です.
これからは,画像変換したいときに,このマクロを実行すれば毎回自動で保存してくれます.
ただし,注意点があります.マクロを書いたExcelの保存形式は,.xlslでは無く,マクロ有効ブック.xlsmで保存してください.
使う分には理解する必要は無いので,そのまま動かしてみましょう.
これで実行すれば,全てのグラフが画像保存されます.今のままだと,PNGで出力されるので,変更したい人は,PNGのところをJPGなどに変更してください.
出力できるファイル,出力出来ないファイル,コードの意味などといった解説はこちらのページに詳しく書いてあるので参考にしてみてください.僕もこのサイトを読んで理解しました.
">こちらの四つの画像を1度にすべて画像保存してみたときの時間を測ってみます. どんなにグラフが多くても,10秒いないで全てのグラフを画像保存することが出来ます.非常に便利なので使ってみてください.
https://vbabeginner.net/vba%E3%81%A7%E3%82%B0%E3%83%A9%E3%83%95%E3%82%92%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B/
✔マクロの実行コード
Sub GraphToPng()
Dim co As ChartObject '// グラフ枠
Dim sht As Worksheet '// アクティブシート
Dim c As Chart '// グラフ
Dim sAddress As String '// セル位置
Dim sFolder As String '// 画像ファイル出力先フォルダ
Dim sExtension As String '// 出力画像の拡張子
'// ブックがあるフォルダを画像ファイル出力先フォルダとして取得
sFolder = ActiveWorkbook.Path
'// 未保存のブックの場合
If (sFolder = "") Then
Call MsgBox("ブックを保存してください", vbOKOnly)
'// 処理せずに抜ける
Exit Sub
End If
'// 画像拡張子を設定
sExtension = ".png"
'// アクティブシートをWorksheetオブジェクトにセット
Set sht = ActiveSheet
'// ズームを100%に戻す(出力する画像サイズはズームに影響するため)
ActiveWindow.Zoom = 100
'// アクティブシートの全グラフをループ
For Each co In sht.ChartObjects
'// 現ループのグラフがあるセル座標を取得
sAddress = co.TopLeftCell.Address(False, False)
'// 対象グラフを選択する
'// グラフを画面表示させることが目的。
'// これをしないと0バイトの画像ファイルが出力されることがある
Range(sAddress).Select
'// Chartオブジェクトを取得
Set c = co.Chart
'// 画像出力
Call c.Export(sFolder & "\" & sAddress & sExtension)
Next
End Sub
✔実際に画像変換している動画
全てのグラフを5秒で画像保存することが出来ました.
9種類のグラフだけでなく,30種類あったとしても,問題なく画像変換することが出来ます.
処理時間は,使っているパソコンや,グラフの数によって若干変動はあると思います
終わりに
いかかでしたか?
ショートカットやマクロを使うことで,普段の作業においての無駄な作業が改善されたのではないでしょうか?
これからも,パソコン,Excel,PowerPoint,Wordなどに関しての便利な技などを書いていこうと思います.
以上です.