0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【なるべくワンライナー】OutlookでVBA

Last updated at Posted at 2020-11-11

 はじめに

 私の会社のメールソフトがOutlookです。Office製品群としてVBAが利用出来るが、VBAの環境設定がなかなか上手くいかなかった。今でも修行と模索の日々だが、成果物として本文に残します。

 1.最初の難関

 会社に於けるOutlookの「マクロの設定」は「デジタル署名されたマクロに対して警告・・・」に灰色固定されている。IT部門が設定しているのだろう。理由はおそらくOutlook・VBAの設定を、例えば「すべてのマクロを有効にする」にされた状態でマクロが悪用されれば、社内情報をメール経由で社外にジャジャ漏れになるからだろう。
 理由は理解できるが、ああメンドクサイ。IT部門に設定を変更してくれと泣いて頼んでも、0.1秒で却下の回答が来るだろう。
image.png

 2.デジタル署名が必要

 この「マクロの設定」がセキュリティ上固定されている為、「デジタル署名」というExcelのマクロ(VBA)時代では全く知りもしなかった知識が必要になった。この「デジタル署名」にたどりつき、必要性を理解するまでが、なかなか大変だった。当たり前だが、「デジタル署名」が必要なんて誰も教えてくれない。機械エンジニアにはハードルが高いよ。
image.png

 3.デジタル署名の作業手順

詳細は以下の参考サイトを見て欲しいが、概要は4ステップです。
VBA - 有効なデジタル自己署名証明書を作成するSELFCERT.EXE

ステップ① :パソコン内から、SELFCERT.EXEを探して起動し、「デジタル証明書」を作成する。
ステップ② :作成した「デジタル証明書」を、同パソコン内の「証明書ストア」に移動する。
ステップ③ :「証明書ストア」に移動させた「デジタル証明書」をOutlookの「デジタル署名」に登録する。
ステップ④ :OutLook再起動

 4. 初期設定と環境

 「ツール」から「参照設定」を選択し「Microsoft Outlook 16.0 Object Library」に☑を付ける。 
image.png

 5. Outlook・VBA成果物

 なるべくワンライナーを目指したいが限界あり。お許し下さい。

5-1.サイトを開く

パソコンの既定ブラウザで指定サイトを開く

Sub パソコンの既定ブラウザで開く()
    CreateObject("WScript.shell").Run "cmd /c start" & " " & String(2, Chr(34)) & " " & Chr(34) & "https://www.google.co.jp/" & Chr(34), 0, True
End Sub

InternetExplorerで指定サイトを開く

「.Visible = True」を一行にできなかった。

Sub IE起動() 
 With CreateObject("InternetExplorer.Application")
   .Navigate "https://www.google.co.jp/"
   .Visible = True   'Internet Explorerを表示する。
 End With
End Sub

5-2. 選択した文字範囲を抽出

非編集状態(閲覧)の場合

    Sub selectionTest()
        MsgBox ActiveExplorer.Selection(1).GetInspector.WordEditor.Application.Selection
    End Sub

編集状態の場合

新規メール作成や、メールをダブルクリックして開いた場合など

    Sub selectionTest()
        MsgBox ActiveInspector.WordEditor.Application.Selection
    End Sub

5-3. 選択した文字範囲にWikipediaのリンクを付与する。

編集状態じゃないとできないです。

Sub 選択範囲にハイパーリンク付与()
  ActiveInspector.WordEditor.Application.Selection.hyperlinks.Add anchor:=ActiveInspector.WordEditor.Application.Selection.Range, Address:="https://ja.wikipedia.org/wiki/" & ActiveInspector.WordEditor.Application.Selection
End Sub

5-4. 選択範囲に色を付ける。

文字の色は編集モードで変更可能です。

Sub 赤()
     ActiveInspector.WordEditor.Application.Selection.Font.Color = vbRed
End Sub
Sub 青()
     ActiveInspector.WordEditor.Application.Selection.Font.Color = vbBlue
End Sub
Sub 黒()
     ActiveInspector.WordEditor.Application.Selection.Font.Color = vbBlack
End Sub

6. やみくもにやってきて見えてきたこと。

Active系 摘出する対象
ActiveExplorer デスクトップの
最上位階層の
エクスプローラーを摘出
ActiveInspector 今開いている(=編集中)
アイテム(=新規メール等)の
ウインドウを摘出
ActiveInlineResponse
ActiveInlineResponseWordEditor

 参考サイト

Outlook VBA リファレンス
OUTLOOK 研究所

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?