0
0

More than 1 year has passed since last update.

SSMSから取得したデータをVBAマクロを使って楽にExcelに貼り付けたい

Last updated at Posted at 2023-05-09

はじめに

昨今テストの自動化が進んでおりますがうちではまだまだテストの際にSELECTしては手でペタペタとExcelに貼り付ける習慣が残っております。テストの自動化触れてみたい
意外とそういったところがまだいっぱいあったりして需要がないかな、と思い自分が進めてきたVBAでの楽をする方法のいわゆる備忘録のようなものです。
初めての投稿になるので見づらいところ等ございますでしょうがその際はコメントいただけると幸いです。

コード

早速ですが、今回紹介するのはSSMSから取得したデータを表形式を文字列+罫線付きで貼り付けるVBAマクロになります。

DBPaste

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
DBpaste.gif

どうでしょうか?
これが意外と便利で重宝しております。

通常SSMSから取得して貼り付けた場合、Excel標準で貼り付けられるため手順として
1.データ貼り付け
2.表示形式を文字列に変更
3.再度貼り付け
4.罫線を追加
5.見出し行に色を追加する
上記のような手順を自分は踏んでおりました。

その行為をぎゅっとまとめたのが上記マクロになります。
コメントがつどつど記載しているため処理内容に関してはコメント通りとなっており問題ないと思いますが、3点ほど個人の好みになると思う箇所がございます。

ペーストするものがない場合のエラー処理がない

普通でしたらエラー処理の一つでも入れるべきなのでしょうが、このくらいの処理内容であれば面倒くさいから入れなくていいかと思って入れてないです。

データ行が1行もない場合

一行もない場合今回のマクロですと一つ下のセルも選択して何もないことを示しているのですが、
人によっては何もないなら罫線をつけるべきではないと思う方もいらっしゃると思うのでその場合は該当処理をコメントアウトもしくは削除してください。

見出し行の色が気に入らない

これに関してはほぼこのみかと思われます。
参考程度ですが下記のサイトでお好みのRGBが見れるのでよろしければどうぞ
原色大辞典様

少しでも楽したい人に向けて

今回のマクロはあくまで楽をするという点に重きを置いているのでExcel側も少し手を加えます。

・開発>マクロを選択
Excelホーム

・登録したマクロを選択しオプションを選択する
マクロオプション

・ショートカットキーをShift + V で登録
マクロ登録

ここまで行えばSSMSでCtrl+Shift+CからCtrl+Shift+Vでサクッとデータの貼り付けができます。

終わりに

最後まで目を通りしてありがとうございました。
冒頭にもお伝えいたしましたが初投稿故見づらい点、もしくはこうしたほうが読みやすくていいよ、などありましたらお気軽にコメントくださると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0