今更初体験VBA

今作業で詳細設計をやってます。

で、画面のイメージをExcelでつくっているのですが、

レビューアの人がブックの途中の変なセルにカーソルをあわせて、

そのままコミットしてしまい、リーダーからちょっと…的な

注意がありまして。

チームのメンバーの人がマクロを作ってくれました。

 

「Execelの全部のシートのA1セルにカーソルをあわせ、

一番先頭のシートを表示させる。」

 

という、それだけのマクロですが笑

で便利だなァ~と思って、

そういえば一回もVBAて書いたことないなぁ~と思って、

帰宅後書いてみました。

 

Sub Macro1()
'
' Macro1 Macro
'
    Dim A As Workbook
    Dim B As Worksheet
    
    '更新を抑止(処理速度を上げる)
    Application.ScreenUpdating = False
    
    'オブジェクトの格納時はsetを使用
    Set A = ActiveWorkbook
    
    For Each B In A.Worksheets
        'セルのA1の位置をrangeプロパティで取得、application.gotoでセルを移動、スクロールして表示
        Application.Goto B.Range("A1"), True
    Next B
        
    '先頭のシートをアクティブにする
    A.Worksheets(1).Activate
    '全ての処理が終了、画面を更新
    Application.ScreenUpdating = True
    
End Sub

 

 

みたいな。

そうなんです、書いたことなかったんです…恥ずかしい…

今まで誰かの作ったやつを何も感じずに使ってました。ごめんなさい。

意味を忘れないようにこれだけの処理のソースだけどコメントだらけ笑

変数名がクソすぎるけど、許してください笑

 

調べたら本来は動作を覚えさせる?のがマクロの基本なんですね。

サクラエディタにもそんな機能(キーマクロ?)ありますよね。

 

とりあえず自分の作った画面イメージが何十シートもあるから、

いちいち全シートを手でA1セルにしてっていうのは面倒だったので

便利でした。

 

あとソース貼りつけるときは<pre>タグ。覚えた。