【なるべくワンライナー】OutlookでVBA
はじめに
私の会社のメールソフトがOutlookです。Office製品群としてVBAが利用出来るが、VBAの環境設定がなかなか上手くいかなかった。今でも修行と模索の日々だが、成果物として本文に残します。
1.最初の難関
会社に於けるOutlookの「マクロの設定」は「デジタル署名されたマクロに対して警告・・・」に灰色固定されている。IT部門が設定しているのだろう。理由はおそらくOutlook・VBAの設定を、例えば「すべてのマクロを有効にする」にされた状態でマクロが悪用されれば、社内情報をメール経由で社外にジャジャ漏れになるからだろう。
理由は理解できるが、ああメンドクサイ。IT部門に設定を変更してくれと泣いて頼んでも、0.1秒で却下の回答が来るだろう。
2.デジタル署名が必要
この「マクロの設定」がセキュリティ上固定されている為、「デジタル署名」というExcelのマクロ(VBA)時代では全く知りもしなかった知識が必要になった。この「デジタル署名」にたどりつき、必要性を理解するまでが、なかなか大変だった。当たり前だが、「デジタル署名」が必要なんて誰も教えてくれない。機械エンジニアにはハードルが高いよ。
3.デジタル署名の作業手順
詳細は以下の参考サイトを見て欲しいが、概要は4ステップです。
VBA - 有効なデジタル自己署名証明書を作成するSELFCERT.EXE
ステップ① :パソコン内から、SELFCERT.EXEを探して起動し、「デジタル証明書」を作成する。
ステップ② :作成した「デジタル証明書」を、同パソコン内の「証明書ストア」に移動する。
ステップ③ :「証明書ストア」に移動させた「デジタル証明書」をOutlookの「デジタル署名」に登録する。
ステップ④ :OutLook再起動
4. 初期設定と環境
「ツール」から「参照設定」を選択し「Microsoft Outlook 16.0 Object Library」に☑を付ける。
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 |
参考サイト
Author And Source
この問題について(【なるべくワンライナー】OutlookでVBA), 我々は、より多くの情報をここで見つけました https://qiita.com/good_kobe/items/72d02362e032ff3e3718著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .