Office関連

A1セルを選択してから保存するExcelアドイン

@yu_tang_さんのツイートで面白いものがありました。

微妙な位置のセルが選択された状態でブックが開かれると、何かもやっとすることがあるので、A1セルを選択してから保存するオプションがあると、たしかに便利です。

・・・が、Excelのオプションを眺めてみても、「Excel A1セル 選択 保存」といったキーワードで検索してみても、それらしい情報が見つからないので、標準機能では用意されていないように思います。

それならば作ってしまおう!ということで、早速作ってみました。

dl_button A1セルを選択してから保存するExcelアドイン

上記リンクからzipファイルをダウンロードして解凍すると、「SelectCellA1.xlam」ファイルが出力されます。

このファイルをExcelのアドインフォルダにコピーし(同梱の「アドインフォルダを開く.vbs」ファイルを実行すると自動的にアドインフォルダが開きます)、Excelでアドインとして読み込むと、下図のようにクイック アクセス ツール バーにトグル ボタンが表示されます。

SelectCellA1_01

このトグル ボタンを「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>

関連記事

  1. アイコン一覧

    Office 365アイコン(imageMso)一覧(U)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  2. Office関連

    [Word]隠し文字をクイックアクセスツールバーから設定する。

    Wordで、部分的に印刷したくない文字列がある場合には「隠し文字」がよ…

  3. アイコン一覧

    Office 365アイコン(imageMso)一覧(E)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  4. Office関連

    Office 2013 Consumer Preview(カスタマー プレビュー)をインストールして…

    2012/10/26 追記:RTM版公開に伴い記事を追加しました。…

  5. Office関連

    [Wordマクロ]PrintOutメソッド実行時に「型が一致しません」との実行時エラーが発生する。

    Wordマクロで文書を印刷するときはPrintOutメソッドをよく使い…

  6. Office関連

    Microsoft Translator APIで文字列を翻訳するVBAマクロ

    以前書いた記事で、Google翻訳を使って文字列を翻訳するマクロを紹介…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP