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

    Office 2013 オンラインヘルプのリンクを集めてみました。

    新機能を把握するためにはヘルプを見るのが一番早い、というわけでOffi…

  2. Excel

    UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法

    マクロでダイアログやボタンの操作を行う時に便利なUI Automati…

  3. Office関連

    PHPWordを使ってPHPからWordファイルを出力してみる。

    最近オトカドールやルミティアジュエルやらの記事ばかり書いていますが、今…

  4. リボン関連

    Office Ribbon Editorはウィルス?

    私のHP「Office Ribbon Editorの紹介」でも紹介して…

  5. Office関連

    OfficeのコマンドID(コントロールID)リストがGitHubで公開されました。

    前回の記事でも触れていますが、メインストリームサポート期間内のOffi…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP