none
Outlook2010でショートカットキーで新規作成メール本文に値をセット RRS feed

  • 質問

  • お世話になります。

    Outlook2010で下記のようなショートカットキーを押すとアクティブな新規作成メールの本文に、その押したショートカットキーに応じた値がセットされるようにすることは可能でしょうか? 

    設定したいショートカットキーは10数個あり、毎回異なる文面を組み合わせて本文を作成します。

    例えば、Ctrl+23 ⇒ Ctrl+11 の順に押すと文面Bの下に文面Aがセットされます。

     Ctrl11 文面Aが本文にセットされる

     Ctrl23 文面Bが本文にセットされる

            ・

            ・

            ・

     

    新規作成メールは立ち上がってる前提で大丈夫です。

    お分かりになる方がおりましたら宜しくお願い致します。

    2014年7月29日 8:38

回答

  • こんにちは。

    > カーソルがある位置に当該文字列をセットする方法
    > 最終行の左から5文字を青くする

    エディタとしてWordを使っていると、下記のようにWordのVBAコードをそのまま持ってくるだけで色々できます。
    (「WordEditor」はWordの「Document」オブジェクト)

    Public Sub Sample()
      Const wdStory = 6
      Const wdLine = 5
      Const wdCharacter = 1
      Const wdExtend = 1
      Const wdColorBlue = 16711680
      
      With Application.ActiveInspector
        If .IsWordMail = True Then
          If .EditorType = olEditorWord Then
            With .WordEditor.Parent.Selection
              '選択箇所に文字列挿入
              .TypeText "あいうえお"
              .InsertAfter "さしすせそ"
              .InsertBefore "かきくけこ"
              
              '最終行先頭5文字を選択して文字色を青に変更
              .EndKey Unit:=wdStory
              .HomeKey Unit:=wdLine
              .MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
              .Font.Color = wdColorBlue
            End With
          End If
        End If
      End With
    End Sub

    • 回答としてマーク Go12345 2014年8月7日 4:05
    2014年7月31日 7:27

すべての返信

  • こんにちは。

    たとえば下記のようなマクロを用意して、文面を設定するマクロ(下記例ではSetMailBody1,SetMailBody2)をそれぞれクイック アクセス ツールバーに登録すれば、Alt + 数字キーで処理を実行できるようになるかと思います。

    Option Explicit
    
    Public Sub SetMailBody1()
      SetMailBody "あいうえお" & vbCrLf & "かきくけこ"
    End Sub
    
    Public Sub SetMailBody2()
      SetMailBody "さしすせそ" & vbCrLf & "たちつてと"
    End Sub
    
    Private Sub SetMailBody(ByVal content As String)
      On Error Resume Next
      If LCase(TypeName(Application.ActiveInspector.CurrentItem)) = "mailitem" Then
        Application.ActiveInspector.CurrentItem.Body = content
      End If
      On Error GoTo 0
    End Sub

    2014年7月30日 4:37
  • 迅速なご回答ありがとうございます!

    指定のショートカットキーでの実行ではできませんが、用件は満たせそうです。

    メール形式をhtmlにしたり一部の文字に色を付けたりする必要があるので色々研修してみます。

    助かりました!

    2014年7月30日 6:53
  • 度々恐れ入ります。

    > Application.ActiveInspector.CurrentItem.Body = content

    上記で本文に変数contentの値を表示できたのですが、

    署名があったりなかったりするのと、カーソル位置を手動で移動し、そこでショートカットキーを押して文字列

    をセットしたいのでカーソルがある位置に当該文字列をセットする方法ってありますかね?

    また、本文に表示された文字列に対して例えば、最終行の左から5文字を青くするようなこともVBAでできるの

    でしょうか?

    不勉強で申し訳ないですが、お分かりでしたらご教授いただきたいです。


    2014年7月31日 5:45
  • こんにちは。

    > カーソルがある位置に当該文字列をセットする方法
    > 最終行の左から5文字を青くする

    エディタとしてWordを使っていると、下記のようにWordのVBAコードをそのまま持ってくるだけで色々できます。
    (「WordEditor」はWordの「Document」オブジェクト)

    Public Sub Sample()
      Const wdStory = 6
      Const wdLine = 5
      Const wdCharacter = 1
      Const wdExtend = 1
      Const wdColorBlue = 16711680
      
      With Application.ActiveInspector
        If .IsWordMail = True Then
          If .EditorType = olEditorWord Then
            With .WordEditor.Parent.Selection
              '選択箇所に文字列挿入
              .TypeText "あいうえお"
              .InsertAfter "さしすせそ"
              .InsertBefore "かきくけこ"
              
              '最終行先頭5文字を選択して文字色を青に変更
              .EndKey Unit:=wdStory
              .HomeKey Unit:=wdLine
              .MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
              .Font.Color = wdColorBlue
            End With
          End If
        End If
      End With
    End Sub

    • 回答としてマーク Go12345 2014年8月7日 4:05
    2014年7月31日 7:27
  • ご回答ありがとうございます。

    また、返信遅くなり大変失礼致しました。

    頂きましたソースで、ATLキーを使用したショートカットキー操作うまく実装できました。
    ありがとうございます。

    ただ、OUTLOOK2010がインストールされている端末4台(WinXP:2台、Win7:2台)に実装したのですが、Win7の2台については、使用しているとアプリケーションが強制終了してしまう現象が発生しています。

    原因がわからなかったので4台すべてOUTLOOKを再インストールしてみましたが改善されませんでした。

    その強制終了がVBAに起因したものかは、Win7の新規端末をもう一台用意して検証中なんですが、OSによってVBAが原因でアプリケーションが強制終了するようなことってあるのでしょうか?

    2014年8月6日 1:46
  • こんにちは。

    > その強制終了がVBAに起因したものかは、Win7の新規端末をもう一台用意して検証中なんですが、OSによってVBAが原因でアプリケーションが強制終了するようなことってあるのでしょうか?

    API利用などのOSに負荷がかかるコードであれば考えられますが、このあたりは正直何とも言えないです・・・。

    再インストールで改善されないのは気になるところではありますが、とりあえず、

    1. セーフモードで起動してみる。
    2. アドインを無効にしてみる。
    3. 管理者権限で起動してみる。
    4. 同じPCでも別のユーザーでログインして動作を確認してみる。

    といったことを行って、原因がどこにあるかを一つ一つ調べる必要があるかと思います。
    2014年8月7日 1:13
  • お世話になります。

    承知しました。

    ご回答ありがとうございます。

    この間、いろいろ試してみてるんですがVBAは関係なさそうです。

    頂いた内容も試してみます!

    2014年8月7日 4:04