はじめに
昨今テストの自動化が進んでおりますがうちではまだまだテストの際にSELECTしては手でペタペタとExcelに貼り付ける習慣が残っております。テストの自動化触れてみたい
意外とそういったところがまだいっぱいあったりして需要がないかな、と思い自分が進めてきたVBAでの楽をする方法のいわゆる備忘録のようなものです。
初めての投稿になるので見づらいところ等ございますでしょうがその際はコメントいただけると幸いです。
コード
早速ですが、今回紹介するのはSSMSから取得したデータを表形式を文字列+罫線付きで貼り付けるVBAマクロになります。
Sub DBPaste()
Application.ScreenUpdating = False
'ワークシートに貼り付け
ActiveSheet.Paste
'行数の取得
Dim DbRowscnt As Long
DbRowscnt = Selection.Rows.Count
'選択範囲の行数を取得
If Selection.Rows.Count = 1 Then
'1行の場合、下の行も選択
Range(Selection.Rows(1), Selection.Rows(1).Offset(1, 0)).Select
End If
'選択範囲に枠線を引く
Selection.Borders.LineStyle = True
'数値のセルを文字列として表示
Selection.NumberFormatLocal = "@"
'再度貼り付けを行う
Range(Selection(1).Address).Select
ActiveSheet.Paste
'目次列に色を付ける
Dim firstColumn As Range
Set firstColumn = Selection.Rows(1)
firstColumn.Interior.Color = RGB(250, 238, 153)
'初期位置を選択
Range(Selection(1).Address).Select
Application.ScreenUpdating = True
End Sub
どうでしょうか?
これが意外と便利で重宝しております。
通常SSMSから取得して貼り付けた場合、Excel標準で貼り付けられるため手順として
1.データ貼り付け
2.表示形式を文字列に変更
3.再度貼り付け
4.罫線を追加
5.見出し行に色を追加する
上記のような手順を自分は踏んでおりました。
その行為をぎゅっとまとめたのが上記マクロになります。
コメントがつどつど記載しているため処理内容に関してはコメント通りとなっており問題ないと思いますが、3点ほど個人の好みになると思う箇所がございます。
ペーストするものがない場合のエラー処理がない
普通でしたらエラー処理の一つでも入れるべきなのでしょうが、このくらいの処理内容であれば面倒くさいから入れなくていいかと思って入れてないです。
データ行が1行もない場合
一行もない場合今回のマクロですと一つ下のセルも選択して何もないことを示しているのですが、
人によっては何もないなら罫線をつけるべきではないと思う方もいらっしゃると思うのでその場合は該当処理をコメントアウトもしくは削除してください。
見出し行の色が気に入らない
これに関してはほぼこのみかと思われます。
参考程度ですが下記のサイトでお好みのRGBが見れるのでよろしければどうぞ
原色大辞典様
少しでも楽したい人に向けて
今回のマクロはあくまで楽をするという点に重きを置いているのでExcel側も少し手を加えます。
ここまで行えばSSMSでCtrl+Shift+CからCtrl+Shift+Vでサクッとデータの貼り付けができます。
終わりに
最後まで目を通りしてありがとうございました。
冒頭にもお伝えいたしましたが初投稿故見づらい点、もしくはこうしたほうが読みやすくていいよ、などありましたらお気軽にコメントくださると幸いです。