忠犬園児にあの備忘録

楽することに全力になりましょう

エビデンスの画像とってExcelにペタペタするのってめんどくさいよね。

http://firestorage.com/download/923560ebc69cec3f5ccda72b3e420f848df0b060

 

だからマクロ作ったんですよ。めんどくさい単調作業は短縮するに限ると思うんです。

僕の今働いてる環境は金融関係なので、外からのUSB持ち込みおよび持ち出しはできません。現場で作ったものを家でも作り、せっかくプライベートで作るものなのだからUI(というかデザイン)を加えるという二度手間を踏んでます。家でエビデンスとることなんかないのにね。

特に難しいことは何もしていません。処理も見れば自分好みに変更できるので好きに使えばいいと思います。

IT現場でこういう風にエビデンスをとらないほうが珍しいと思います。いちいち貼ってはctrl+; , ctrl+:と時刻を記載するなんて誤差も出そうだし。

 

使い方などは載っているし、中身の処理概要について軽く触れようと思います。コメント読めば全部わかるんだけどね。

' キャプチャ収集状態なら True
Private isLogging As Boolean

' キャプチャを貼り付けるブック名を保持する
Private fileName As String

' キャプチャを取得する
Private Sub Capture()
On Error GoTo errorHandler

' クリップボードに画像が格納されていたら貼り付ける
If Application.ClipboardFormats(1) = xlClipboardFormatBitmap Then
Dim rows As Integer: rows = 54 ' 行数
Dim cols As Integer: cols = 72 ' 列数

' キャプチャを貼り付けるブックを選択する
Workbooks(fileName).Activate

' 選択しているセルを基準セルとして取得する
Dim baseCell As Variant
Set baseCell = Selection

' 下線を引く
Range(baseCell.Offset(rows, 1), baseCell.Offset(rows, cols + 1)).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With

' 見出し用の記号をセットする
baseCell.Offset(2, 2).Value = "■"

' キャプチャ取得日時をセットする
With baseCell.Offset(2, 4)
.HorizontalAlignment = xlLeft
.Value = "取得日時:" & Now
End With

' クリップボードのデータを貼り付け、行数に合わせて縮小する
baseCell.Offset(4, 3).Select
ActiveSheet.Paste
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = .Height * 0.7
End With

' 次の画像を貼るために基準セルを移動し、クリップボードに現在のセルの値をコピーする (先頭を Bitmap でなくすため)
With baseCell.Offset(rows + 1, 0)
.Select
.Copy
End With

' 切り取り・コピーモードを解除する
Application.CutCopyMode = False

' 改ページ設定をする
ActiveSheet.HPageBreaks.Add Before:=ActiveCell
End If

' 1秒間隔で再実行するようタイマーをセットする
Application.OnTime Now + TimeValue("00:00:01"), "Capture", , isLogging

Exit Sub

errorHandler:
isLogging = False

End Sub

' キャプチャを開始する
Sub StartCapture()
MsgBox "キャプチャの取得を開始します。終了時は Esc キーを押下してください。"

' Esc キーで停止できるようにしておく
Application.OnKey "{ESC}", "StopCapture"

' キャプチャを貼り付けるブック名を取得する
fileName = ActiveWorkbook.Name

' キャプチャ取得状態を設定する
isLogging = True

' キャプチャの取得を開始する
Capture
End Sub

' キャプチャを終了する
Sub StopCapture()
If isLogging = True Then
' キャプチャの取得状態を解除する
isLogging = False

' Esc キーへの登録を解除する
Application.OnKey "{ESC}", ""

MsgBox "キャプチャの取得を停止しました。"
End If
End Sub

 

見てみたら本当に特に語ることなかった(´・ω・`)