« 見出しマップの文字サイズを変更するマクロ | トップページ | 【改良版】図表番号を挿入する(Seqフィールドの利用) »

2009年9月14日 (月)

ワードで日記を書く場合のマクロ(改良前と改良後)

先日、OKwaveの掲示板でのワードマクロに関する質問に回答しました。

ワードで日記を書いていたら50ページにもなってしまったので、毎回日記ファイルを開くたびに「Ctrl + End」を押したときのような作業を自動でしてほしい、みたいな問いかけです。

詳細はこちら

そのときに紹介したプログラムのコードはこちらです。

▼プログラム1(改良前)

Sub AutoOpen()
      '文書の末尾へカーソル移動
10    Selection.EndKey Unit:=wdStory
      '改行
20    Selection.TypeParagraph
      '日付入力
30    Selection.InsertDateTime _
      DateTimeFormat:="MM/dd/yyyy", _
      InsertAsField:=False
      '改行
40    Selection.TypeParagraph
End Sub

プログラムは、ノーマルテンプレートのNewMacrosにコピペすれば使えますが、何らかのファイルを開くたびに日付が入ってしまってうっとおしかったので、以下のように修正しました。

▼プログラム2(改良後)

Sub AutoOpen()

      Dim myMessage As String
      Dim myTitle As String

10    myMessage = "文書の終わりに日付を入力しますか?"
20    myTitle = "日記の日付自動入力"

30    Select Case MSGBOX(myMessage, _
        vbOKCancel Or vbQuestion Or vbDefaultButton1, _
        myTitle)

      Case vbOK

          '文書の末尾へカーソル移動
40        Selection.EndKey Unit:=wdStory
         
          '改行
50        Selection.TypeParagraph
         
          '日付入力
60        Selection.InsertDateTime _
          DateTimeFormat:="MM/dd/yyyy", _
          InsertAsField:=False
         
          '改行
70        Selection.TypeParagraph

80    Case vbCancel
90        End
100   End Select

End Sub

▼プログラム解説

30行のselect caseがポイントです。

メッセージボックスで、「OK」ボタンと「キャンセル」ボタンとを表示するようにしています。

クリックしたボタンの種類により、実行するプログラムが変わります。

場合分けをする場合に重宝する表現です。

vbOKCancel Or vbQuestion Or vbDefaultButton1

これは合わせ技的な書き方ですね。3つの条件を Or でつなげています。

vbOKCancel:「OK」ボタンと「キャンセル」ボタンを表示。

vbQuestion :はてなマークを表示。

vbDefaultButton1:一つ目のボタンをデフォルトで選択する設定。

つまり、OKとキャンセルのボタンでは、OKボタンがデフォルトボタンになっているということ。

デフォルトボタンというのは、メッセージボックスが表示されたときにEnterキーを押したときに反応するボタンということ。

ちなみに、

vbOKCancel + vbQuestion + vbDefaultButton1

という表示でも同じ意味です。Or を + に変えました。

Case vbOK: これは、「OK」ボタンの場合、という意味。

Case vbCancel: これは、「キャンセル」ボタンの場合という意味(80行)。

|

« 見出しマップの文字サイズを変更するマクロ | トップページ | 【改良版】図表番号を挿入する(Seqフィールドの利用) »

マクロプログラム」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/46213234

この記事へのトラックバック一覧です: ワードで日記を書く場合のマクロ(改良前と改良後):

« 見出しマップの文字サイズを変更するマクロ | トップページ | 【改良版】図表番号を挿入する(Seqフィールドの利用) »