エクセル「カーソルはA1セルで保存」を自動化
ExcelシートはA1セルにしてから保存
エクセルでカーソルをA1セルにしてから保存する謎マナー。
これは次の人が使いやすいように体裁を整えた心配りのあるお作法です。
だが、めんどくせー!
今回のおしゃれエクセルは、社会人になってビジネスエクセルを使い始めるルーキーたちがマナーがなってない!と咎められないようにエクセルのカーソルがA1セルになってくれる自動化マクロです。
「カーソルはA1セルで保存するお作法」を不本意ながらやんなきゃいけないひとへのハウツーです。
A1セルをカーソルのホームポジションにする
実行するとすべてのシートでカーソル位置をA1にするマクロです。
追加機能として、シート倍率を100%に統一、デフォルトシートが先頭シートになります。
Sub お作法_A1カーソル() Dim i As Worksheet, sht As Integer sht = ActiveSheet.Index For Each i In Worksheets Application.Goto Sheets(i.Index).Range("A1") Worksheets(i.Index).Select ActiveWindow.Zoom = 100 Next Sheets(1).Activate End Sub
カスタマイズのポイント
- 倍率をそのままにしたいときは、以下の2行をコメントアウトします。
Worksheets(i.Index).Select
ActiveWindow.Zoom = 100 - 先頭シートでなく今のシートのままでいいときは値を sht にします。
Sheets(1).Activate → Sheets(sht).Activate
マクロなしエクセルでお作法マクロが動くようにする
どのエクセルファイルでもお作法マクロを動かしたいときは、個人用マクロブック(PERSONAL.xlsb)を作るとお便利です。
マクロなしのエクセルファイル(xlsx)でもお作法マクロが動きます。
ファイルの保存時に実行させるには WorkbookBeforeSave でお作法マクロをコールします。コールするとファイルを保存するとき自動的にカーソルがA1になります。
使ってみると───。
ちょっと保存したときでもカーソルが先頭シートのA1セルに戻ってしまい使い勝手が悪いです。
そこで、メッセージボックスを表示して Yes ならカーソルをA1にして、No なら普通に保存にしてみます。
Dim A1保存 As VbMsgBoxResult
A1保存 = MsgBox("全シートのセル位置を【A1】で保存しますか?" & Chr(13) & Chr(13) & _
"はい(Y) :A1で保存" & Chr(13) & _
"いいえ(N):そのまま保存", vbYesNo + vbQuestion + vbDefaultButton2)
If A1保存 = vbYes Then
Call お作法_A1カーソル
End If
これで使い勝手が良くなりました。
A1カーソルのお作法破りのエクセルへの自動化マクロ
A1カーソルのお作法をしてると気になってくるのがA1で保存していないエクセル。
誰かの作ったエクセルファイルと開いたときにA1じゃないと「ちっ、マナーがなってねーなー」とイラっとすることはないですか?
そんなひとは、開いたときにお作法_A1のマクロを実行させれば解決します。
人にお作法を説くよりも WorkbookOpenでお作法_A1カーソルを実行すればイラっとすることなくニッコリです。
まとめ
カーソルをA1にする謎マナーはローカルマナー。
A1で保存しない人(オレ)はシートやカーソルがどこでも何とも思わないんだけどA1がお作法なひとはイラっとしちゃいます。
つまり、カーソル位置とシート選択が気になる人がエクセルを開いたときに自動的にカーソルがA1になるマクロをいれればいいんじゃね?
という結論に。
能書きはいいからくれよ
何っているか、よくわかんない。
能書きはいいからくれよ。というひとには個人用マクロブック(PERSONAL.xlsb)をご用意しましたのでお持ち帰りください。
個人用マクロブック(PERSONAL.xlsb)
A1カーソルお作法マクロ
鍵をかけているのでカスタマイズはできませんが、XLSTARTにぶち込めばファイル保存時に自動的にカーソルをA1セルにします。
カスタマイズを施した個人用マクロブックをご所望のかたは DM でご相談ください。
缶コーヒー1杯分のアマゾンギフト券(100円)で必ずやあなたのお役に立ちます。
カスタマイズメニュー
保存するときカーソルをA1に する/しない
・メッセージでA1保存を確認しますか? する/しない
・倍率100% する/しない
・選択するシート位置は? Sheet1/そのまま
ひらいたときA1に する/しない
・A1にしますか? する/そのまま
・選択するシート位置は? Sheet1/そのまま