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関連

    VBE用のCOMアドインをメモ帳で作ってみる。

    “Officeアプリケーション用のCOMアドインをVisual Stu…

  2. Office関連

    すべてのテーブルの結合を解除するWordマクロ

    すべてのテーブルのセル結合を解除するWordマクロを考えてみました(W…

  3. アイコン一覧

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

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

  4. Office関連

    ポータブル デバイスからファイルをコピーするVBAマクロ

    mougにあった質問関連のメモです。ポータブル デバイスか…

  5. Office関連

    GetSpellingSuggestionsメソッドで文法上の誤りの修正候補は取得できない?

    前回と前々回の記事でスペルチェック、文章校正に関するWordマクロを扱…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP