今更初体験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>タグ。覚えた。