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等のマクロをお使いの方はご注意ください。

PDFファイル上のフィールドの値を操作するVBAマクロ前のページ

【魔法つかいプリキュア】まほうのパーティーカードゲットしてきました。次のページ

関連記事

  1. Office関連

    Wikipediaの検索予測キーワードの一覧を取得するVBAマクロ

    Wikipediaのサーチボックスにキーワードを入力すると、入力したキ…

  2. Office関連

    [Excel Services ECMAScript]選択範囲が変更されたときのイベントを利用する。…

    埋め込んだExcelワークブックの、選択範囲が変更されたときのイベント…

  3. Office関連

    変更履歴をオンにしたままで文字列の置換を行うWordマクロ

    MSDNフォーラムに、“変更履歴をオンにした状態で文字列を置換するマク…

  4. Office関連

    Acrobatを使ってPDFファイルをNアップするVBAマクロ

    VBAで、B5サイズのPDFファイルを横並びにしてB4サイズのPDFフ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP