AyatosNote

大学院生がおくる,一人暮らしのお助けブログ

【Excel,Word】研究の報告書作成が劇的に変化する技2選

f:id:for-students:20191203221632j:plain

こんにちは,年300日を研究室で過ごすAYATOです.

そろそろ,研究生活も3年目に突入します.

 

さて,去年に以下のツイートをしました.

報告書を書くなら,「ショートカットを多用すべき」と思う.繰り返し行う作業はできるだけ一瞬で終わらせた方が圧倒的に効率が上がる.一回の操作で,5秒縮まるだけでも,60回繰り返せば5分も短縮できる.そうやっていくつもの操作を早めれば,膨大な時間を短縮することができるはず

今回は「研究データまとめにおける時短術」の話です.
使用頻度が高く,使っていて気持ちのいい技を二つだけ紹介しますね.

気持ちのいい技2選

f:id:for-students:20191206105607j:plain

簡単なほうから説明しますね.

 

 

 

 

Ctrl + Y (やり直しだけじゃない,秘めた応用技)

 
  • おすすめ度:
     
  • 使用頻度:非常に多い
  • 万能生:高い
  • 時間短縮量:少なめ
  • 難易度:初級

Ctrl + Yで元に戻す.という操作は知っていると思うので,その他に使える秘めた応用沢にについて早速紹介していこうと思います.


Excelの枠の色を何度も変更したい!

f:id:for-students:20191206120422p:plain

枠を黒く塗りつぶしたい時に,毎回青枠の部分をクリックしていては時間がかかり,無駄な時間が発生してしまいます.

【Ctrl+Y】 or 【F4】を押すことで,瞬時に枠の色を黒く塗りつぶすことができます.

模擬実験

下図のように,実際に9箇所のセルに黒く色をつけるとします.

f:id:for-students:20191206135803p:plain


実際に画像変換している動画

f:id:for-students:20191206162621p:plain

通常の場合:22.880秒 / ショートカット利用時:12.251秒
45%の動作時間を短縮することが出来ました!


Wordで画像を全て同じにしたい!

報告書をまとめるときに非常に役立ちます.
皆さんは,Wordで画像を沢山貼り付けた際,こういうことをしてはいませんか?

  1. 画像サイズをトリミングして変更
  2. また別の画像もトリミングで変更
  3. また別の画像も
  4. また別の
  5. また
  6. また
  7. ...
  8. ...

永遠とやっていたら,なんだか悲しくなってきませんか??
それを一発で解決してしまう方法をご紹介します!

実は【Ctrl+Y】 or 【F4】を使うと可能なんです!

手順を紹介しますね

 

  • 挿入タブから画像を挿入
  • 1つ目だけ,トリミングで編集
  • 画像の上で右クリック
  • レイアウトの書式設定
  • OKを選択
  • 同じサイズにしたい画像をクリック
  • Ctrl + Y or F4

f:id:for-students:20191207155324p:plain

これを行うことで圧倒的な速さで終わらせることが出来ます.

:毎回一枚目の画像は必ず【挿入タブ】から画像を挿入してください

実際に時間を測定している動画

18枚の画像を全て同じサイズに変更する際に,ショートカットを利用しない場合と利用下場合で比較しました.

通常の場合:84.001秒 / ショートカット利用時:26.306秒
70%の動作時間を短縮することが出来ました!

Excelのグラフを全て一発で画像保存する方法

f:id:for-students:20191207170020j:plain

 

 
  • おすすめ度:
     
  • 使用頻度:非常に多い
  • 万能生:低い
  • 時間短縮量:高い
  • 難易度:上級

使いこなすためにいくつかの設定を行わないといけないので,頑張っていきましょう!!
Excelを使っている人は多くいると思いますが,マクロ機能を使っている人はそれほど多くないと思います.
今回はこのマクロ機能を使って一発で画像変換していこうと思います.
マクロ知らない人でも大丈夫です.言われたとおりにしておけば,うまく動さするはずです.

マクロを使って自動化させてしまおう!

マクロって何?よくわからない.しっかりそこも理解したい!理解しないと気が済まない!っていう人はこちらを見てください.

 

ayatosnote.hatenadiary.com

 

とにかく画像変換したいんだ!!という方はそのまま進んでください.


手順を紹介しますね

 

  • 開発タブをクリック
  • Visual Basicを選択
  • 挿入から標準モジュールを選択
  • 以下のコードをOption Explicit下に入力
  • 開発タブのマクロを選択
  • コード名を実行

開発タブが無い人へ

開発タブの表示の仕方に関してはこちらをご覧ください

ayatosnote.hatenadiary.com

 


開発をダブルクリック

開発タブを表示することが出来たなら,
【ホーム】から【開発】タブを選択してください.


f:id:for-students:20191207184053p:plain

 


Visual Basicを選択

一番左にあるので,選択してください.


f:id:for-students:20191207184609p:plain


Visual Basicを選択すると,このような画像が出てきます.


f:id:for-students:20191207184825p:plain

 


挿入から標準モジュールを選択

メイン画像に,Option Explicit という文字がでてくると思います.
気にせず,したページにあるソースコードをコピーして,貼り付けてください.
GraphToPng()というのが実行名になります.

そしたら,【Visual Basic】の右側に,【マクロ】というタブがあるのでそこを選択してください.

下図のような画像が出てくるので,そこに書いてある実行名を選択して実行してください.これだけで完了です.

f:id:for-students:20191207185752p:plain

 

これからは,画像変換したいときに,このマクロを実行すれば毎回自動で保存してくれます.
ただし,注意点があります.マクロを書いた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


実際に画像変換している動画

適当にグラフを9個作り,画像変換してみました.

全てのグラフを5秒で画像保存することが出来ました.
9種類のグラフだけでなく,30種類あったとしても,問題なく画像変換することが出来ます.
処理時間は,使っているパソコンや,グラフの数によって若干変動はあると思います

終わりに

いかかでしたか?
ショートカットやマクロを使うことで,普段の作業においての無駄な作業が改善されたのではないでしょうか?
これからも,パソコン,Excel,PowerPoint,Wordなどに関しての便利な技などを書いていこうと思います.

 


以上です.