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 アドイン

    作業ウィンドウのアプリをWord 2013にも対応させる。

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

  2. Office関連

    ビジネスITアカデミーの無料VBAセミナーに行ってきました。

    Excel MVPの伊藤さんやWord MVPの新田さんのブログ記事で…

  3. Office アドイン

    [Office用アプリ]カレンダーから日付入力

    カレンダーから日付を選ぶだけで選択中のセルに日付を入力できるコンテンツ…

  4. Office関連

    「変更履歴とコメントの表示」を設定するWordマクロ

    Microsoft コミュニティに「変更履歴とコメントの表示」オプショ…

  5. Office関連

    ちゃうちゃう! 2.0を操作するWordマクロ

    「テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。」…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP