@yu_tang_さんのツイートで面白いものがありました。
Excel に「A1セルを選択してから保存する」というオプション設定をつけないことで、MS は雇用創出に絶大な貢献をしている。
— YU-TANG (@yu_tang_) 2014, 8月 20
微妙な位置のセルが選択された状態でブックが開かれると、何かもやっとすることがあるので、A1セルを選択してから保存するオプションがあると、たしかに便利です。
・・・が、Excelのオプションを眺めてみても、「Excel A1セル 選択 保存」といったキーワードで検索してみても、それらしい情報が見つからないので、標準機能では用意されていないように思います。
それならば作ってしまおう!ということで、早速作ってみました。
上記リンクからzipファイルをダウンロードして解凍すると、「SelectCellA1.xlam」ファイルが出力されます。
このファイルをExcelのアドインフォルダにコピーし(同梱の「アドインフォルダを開く.vbs」ファイルを実行すると自動的にアドインフォルダが開きます)、Excelでアドインとして読み込むと、下図のようにクイック アクセス ツール バーにトグル ボタンが表示されます。
このトグル ボタンを「ON」にしておくと、ブックを閉じたときにすべてのシートでA1セルが選択された状態で保存されます。
A1セルを選択して保存したくない場合は、トグル ボタンを「OFF」にしておけば、アドインは動作しません。
出番があるんだか無いんだかよく分からないアドインですが、興味がある方はお試しください。
ちなみに、このアドインのコードは下記のようになっていますので、アドインの機能を手直ししたい方は下記のコードを自由に改変してお使いください。
・ThisWorkbook
Option Explicit Private WithEvents App As Excel.Application Private flg As Boolean Public Sub rbnSelectCellA1_onLoad(ribbon As IRibbonUI) flg = False Set App = Application End Sub Public Sub tgbSelectCellA1_getPressed(control As IRibbonControl, ByRef returnedVal) returnedVal = flg End Sub Public Sub tgbSelectCellA1_onAction(control As IRibbonControl, pressed As Boolean) flg = pressed End Sub Private Sub SelectCellA1() 'すべてのシートでA1セルを選択 Dim ws As Excel.Worksheet Dim tmp As Excel.Worksheet On Error Resume Next Set tmp = ActiveWorkbook.ActiveSheet For Each ws In ActiveWorkbook.Worksheets Application.Goto ws.Cells(1, 1), True Next tmp.Select End Sub Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean) '未保存のファイルは無視 If Len(Trim(Wb.Path)) > 0 Then With CreateObject("Scripting.FileSystemObject") Select Case LCase(.GetExtensionName(Wb.FullName)) 'アドインファイルは無視 Case "xla", "xlam" Case Else If flg = True Then SelectCellA1 Wb.Save End If End Select End With End If End Sub
・リボンXML
<?xml version="1.0" encoding="utf-8"?> <customUI onLoad="ThisWorkbook.rbnSelectCellA1_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="tabSelectCellA1" label="SelectCellA1" visible="false"> <group id="grpSelectCellA1" label="SelectCellA1"> <toggleButton id="tgbSelectCellA1" label="SelectCellA1" screentip="すべてのシートでセルA1を選択" supertip="このボタンをONにすると、ブックを閉じる時にすべてのシートでセルA1を選択した状態で保存されます。" imageMso="SelectCell" onAction="ThisWorkbook.tgbSelectCellA1_onAction" getPressed="ThisWorkbook.tgbSelectCellA1_getPressed" /> </group> </tab> </tabs> </ribbon> </customUI>
この記事へのコメントはありません。