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>

Google Apps ScriptでVoiceText Web APIを呼び出す。前のページ

Microsoft Download Centerのファイルがリンク切れを起こしているときは?次のページ

関連記事

  1. Office関連

    Microsoft Graph SDK for PHPを使ったAPIの呼び出しサンプル

    知らない間に(恐らくBuild 2017のタイミングに合わせて)Mic…

  2. Office関連

    外部からOutlookのマクロを実行するマクロ

    外部からOutlookのマクロを実行するマクロ今回は外部からO…

  3. Excel

    フォルダ内にあるExcelファイルをカウントするVBScript

    「フォルダ内 Excel 数える VBScript」といったキーワード…

  4. Office関連

    Gmail APIを使ってメール送信するVBAマクロ

    「「Gmail API」β版公開、連動アプリ開発を支援」にもあるように…

  5. Office関連

    「あのコマンドどこだっけ? for Office 2013」の紹介

    Word MVPの新田さんのブログでも紹介していただいている自作フリー…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP