Office関連

Re: 【Wordマクロ】Word起動時に、前回終了時に開いていたファイルを表示

Word MVPの新田さんがブログで面白い記事を書かれていました。

・【Wordマクロ】Word起動時に、前回終了時に開いていたファイルを表示
http://ameblo.jp/gidgeerock/entry-12125004705.html

Wordを起動したときに前回終了時に開いていたファイルを表示するマクロです。

なるほど。
シンプルながらなかなか便利そうです。

“これはネタをパクるしかない!”

というわけで、さっそくやってみました。

リボンXML

Word起動時 = スタートアップフォルダに入れたテンプレートファイルが開かれたときにマクロを実行するため、リボンをカスタマイズすることにします。

<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="rbnRecentOpen_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui" />

標準モジュール

RecentFilesを使ってファイルを開くところは新田さんのコードをそのまま使います。
ただ、Wordを起動するたびにファイルが開かれるのは都合が悪い場合もあるため、

“Word起動時にShiftキーが押されていたらファイルを開く”

というように、キー判定処理を加えています。

Option Explicit

Private Declare Function GetKeyboardState Lib "user32" (lpKeyState As Byte) As Long

Public Sub rbnRecentOpen_onLoad(ribbon As IRibbonUI)
  Dim keys(0 To 255) As Byte
  
  If GetKeyboardState(keys(0)) <> 0 Then
    'Shiftキー判定
    If (keys(vbKeyShift) And &H80) <> 0 Then
      On Error Resume Next
      Application.RecentFiles(1).Open
      On Error GoTo 0
    End If
  End If
End Sub

スタートアップフォルダに保存

上記コードを設定したファイルをテンプレートファイル(dotm)として保存し、スタートアップフォルダにコピーすると、Word起動時に上記マクロが実行されるようになります。

私の方で作成したファイルを下記リンク先に置いておきますので、興味がある方は下記ファイルで動作をご確認ください。

► 起動時に前回終了時に開いていたファイルを表示するWordマクロ

おわりに

このマクロ、本当は下記コードのように

“Shiftキーと数字キーが押されていたら、数字キーに応じてファイルを開く”

処理を考えていたのですが、実際に試したところ、ファイルを開くと同時に押していた数字キーが文章に入力されてしまい、非常に使い勝手が悪いものになってしまいました。
(なので上記コードでは数字キー判定処理を抜いてあります。)

Option Explicit

Private Declare Function GetKeyboardState Lib "user32" (lpKeyState As Byte) As Long

Public Sub rbnRecentOpen_onLoad(ribbon As IRibbonUI)
  Dim keys(0 To 255) As Byte
  Dim num As Long: num = 1 '初期化
  Dim i As Long
  
  GetKeyboardState keys(0)
  'Shiftキー判定
  If (keys(vbKeyShift) And &H80) <> 0 Then
    '数字キー判定(vbKey1 - vbKey9)テンキー未対応
    For i = 49 To 57
      If (keys(i) And &H80) <> 0 Then
        num = i - 48
        Exit For
      End If
    Next
    On Error Resume Next
    Application.RecentFiles(num).Open
    On Error GoTo 0
  End If
End Sub

また、上で紹介しているコードではShiftキーによる判定を行っていますが、Word起動時にShiftキーを押していると、自動実行マクロが無効になりますので、AutoOpen等のマクロをお使いの方はご注意ください。

関連記事

  1. Office関連

    「クラシックスタイルメニュー for Office 2010」のOffice 2013対応状況

    私が下記ページで公開しているフリーソフト「クラシックスタイルメニュー …

  2. Office関連

    目次を更新するWordマクロ

    文書の目次を更新するにはTableOfContentsオブジェクトのU…

  3. Office アドイン

    JavaScriptで作成した作業ウィンドウアプリを検証してみる。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  4. Office関連

    「ちゃうちゃう!」で2つの文書を比較するWordマクロ

    2014/08/10 追記:ちゃうちゃう!がバージョンアップされま…

  5. Office アドイン

    Visio JavaScript APIで遊んでみました。

    前回の記事でプレビュー版がリリースされた「Visio JavaScri…

  6. Office関連

    [Word VBA]ルビ(ふりがな)ダイアログの操作に挑む(2)

    2016/10/28 追記:改良版のマクロを書きました。…

コメント

  • コメント (0)

  • トラックバックは利用できません。

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP