[Office365]受信者の迷惑メール関連ルールの詳細情報収集

Office365を使っていると迷惑メール対策は通常自動でやってくれます。

でも、自動が故に困ったことが起きます。

それは、どんな状態でシステムが迷惑メール対策を行っているか判らないと言うことです。

そこで、判らないを判るようにするためにフィルタの設定情報を抽出するコマンドレットを紹介します。

■ 1. 「Windows PowerShell 用 Windows Azure Active Directory モジュール」を右クリックして「管理者として実行」で起動します。
※ Windows PowerShell のショートカットではありません。

■ 2. 接続のために以下のコマンドレットを実行します。
2-1.
$LiveCred = Get-Credential
※ ここで資格情報の確認が表示されますので、Office 365 の管理者権限のあるアカウントとパスワードを入力します。

2-2.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $LiveCred -Authentication Basic -AllowRedirection

※ 上記コマンドは 1 行のコマンドです。改行せずに実行してください。
※ 警告が表示されますが、正常に接続されている証拠ですので問題ございません。

2-3.
Import-PSSession $Session -AllowClobber

2-4.
Connect-MsolService -Credential $UserCredential

今後 PowerShell をご利用いただく際には、上記手順 <Windows PowerShell 用 Azure Active Directory モジュールを利用時に毎回必要な設定> より実行します。

=================================================
□ 各種フィルターの設定状況を抽出するコマンドレット
=================================================

■ 迷惑メール関連設定情報

<構文>
Get-MailboxJunkEmailConfiguration -Identity “メールアドレス” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”保存先ファイルパス\ファイル名.csv”

<実行例>
Get-MailboxJunkEmailConfiguration -Identity “User01@contoso.com” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”Temp\MailboxJunkEmailConfiguration.csv”
Get-MailboxJunkEmailConfiguration -Identity “nisimura@ic.kanagawa-it.ac.jp” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”MailboxJunkEmailConfiguration.csv”
■ 受信トレイルール設定情報

<構文>
Get-InboxRule -Mailbox “メールアドレス” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”保存先ファイルパス\ファイル名.csv”

<実行例>
Get-InboxRule -Mailbox “User01@contoso.com” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”Temp\InboxRules.csv”

Get-InboxRule -Mailbox “nisimura@ic.kanagawa-it.ac.jp” | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\”InboxRules.csv”

=================================================
□ 各種フィルターの設定状況を抽出するコマンドレット
=================================================

■ トランスポート ルール
Get-TransportRule | Export-CSV -NoTypeInformation -Encoding UTF8 C:\TransportRule.csv

■ スパム フィルター
Get-HostedContentFilterPolicy | Export-CSV -NoTypeInformation -Encoding UTF8 C:\HostedContentFilterPolicy.csv

Excel VBAで、Enterキーで指定したセルへカーソルを移動させる

普段、FileMakerで帳票を作っているので、EnterキーやTabキーを押すと次の指定したセルにカーソルを移動させるというのは、非常に容易いのです。

今回、質問が舞い込んできまして、久々にExcel VBAを使ってのカーソル制御のスクリプトを書くことになりました。

ちなみに、スクリプトの中には、Microsoft MSDN情報や一般の方が書き下ろした情報を参考にしたソースが混ざっています。

それにしても、関数を知っていると、ここまで出来るんだなぁって、つくづく思い知らされました。

さて、本題ですが、今回のスクリプトは、今後の汎用性を考えて、

・対象となるセルの個数に依存しない
・セル番号は、固定しない
・シート保護に依存しない
・Enterキーだけでは無く、方向キーでも移動を可能にする

といったものになっています。

なお、VBAは、マクロにあたるものなので、動き出してしまうと、他のセルの編集が出来なくなってしまいます。
そこで、マクロを止めるために、プログラム内でチェックボックスを監視し、チェックが入っている時には、マクロを実行し、チェックが外れている時には、マクロを停止させる機能を追加しています。
この方法は、OKWebのnishi6様が投稿されていたテクニックを参考にさせていただきました。

まず、最初の手順として、マクロのオン/オフを制御するチェックボックスをシート上の邪魔にならない場所に設置します。
今回は、チェックを入れると「TRUE」、チェックを外すと「FALSE」を表示するセルを監視させます。
そこで、マクロ制御を行うシートをアクティブにし、

開発タブ>挿入>フォームコントロール

で、チェックボックスを1つ、シート上に設置します。

次に、設置したチェックボックスを右クリックし、コントトールの書式設定を選択します。
続いて、「コントロールタブ」で、「リンクするセル」を今回のスクリプト例ですと「$AO$3」にし、「チェックボックス」の設定は「オフ」にします。
なお、この「リンクするセル」のセル番号は、設置するシートによって、空いている場所がそれぞれですので、空いている場所のセル番号に変更してください。

次に、下記ソース内の

Const AdrJump As String = “C3,B4,B5,B6,L17,AB17,L19,AB19,L21,AB21,E24,I24,AA24,AF24,E25,I25,AA25,AF25,E26,I26,AA26,AF26,E27,I27,AA27,AF27,E28,I28,AA28,AF28,E29,I29,AA29,AF29”

が、データを入力したいセル番号の一覧です。
このセル番号一覧の順番に、Enterキーを押すとカーソルが移動していくという仕組みなので、入力したいセル番号をカンマ区切りで入力します。

このマクロの使い方ですが、チェックボックスをオンにしたままマクロを実行するとエラーが起きます。

そこで、エラーが起きた場合には、VBA画面でマクロを停止し、改めてマクロ「setEnableEvents」を実行してください。
これで大概は、エラーを回避出来ます。
ただ、エラーが起きることがあるのですが、それは、AdrJumpに列挙したセル番号通しを比べて、次のセル番号を確定しています。そのため、判定が出来ない時には、エラーになってしまうことがあります。
これを回避するための方法を試行錯誤していたのですが、どうも、上手い方法が思いついていません。
もし、回避出来る方法をご存じの方は教えてください。

で、ソースですが、

ブックに対するソース
「ThisWorkbook」に埋め込むソース
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlDown

End Sub

Private Sub Workbook_Open()

Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlToRight
Application.Goto Sheets(1).Range(“C3”), True
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1

End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーー

シートに対するソース
「Sheet1(一般用)」に埋め込むソース
※上記、一般用というのは、シート名です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
Option Explicit

Private Declare Function GetAsyncKeyState Lib “User32.dll” (ByVal vKey As Long) As Long

Const AdrJump As String = “C3,B4,B5,B6,L17,AB17,L19,AB19,L21,AB21,E24,I24,AA24,AF24,E25,I25,AA25,AF25,E26,I26,AA26,AF26,E27,I27,AA27,AF27,E28,I28,AA28,AF28,E29,I29,AA29,AF29”

Dim Jmp1() As String
Dim Jmp2() As String
Dim DownUp As Integer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range(“AO3”) = False Then Exit Sub

Application.EnableEvents = False
Jmp1 = Split(getAdr(Target), “,”)
If Jmp1(0) = “” Then
DownUp = 1 – (Range(Jmp2(0)).Row < Target.Row Or Range(Jmp2(0)).Column < Target.Column)
Jmp1 = Split(getAdr(Range(Jmp2(DownUp))), “,”)
Range(Jmp2(DownUp)).Select: Jmp2 = Jmp1
Else
Jmp1 = Split(getAdr(Range(Jmp1(0))), “,”): Jmp2 = Jmp1
End If
Application.EnableEvents = True
End Sub

Function getAdr(Tgt As Range) As String
Dim wk() As String, i As Integer

wk = Split(“,” & AdrJump & “,”, “,”)
wk(0) = wk(UBound(wk) – 1)
wk(UBound(wk)) = wk(1)

getAdr = “,,”
For i = 1 To UBound(wk) – 1
If Tgt.Range(“A1”).Address(0, 0) = wk(i) Then
getAdr = wk(i) & “,” & wk(i – 1) & “,” & wk(i + 1)
Exit For
End If
Next
End Function

Sub setEnableEvents()
Erase Jmp1
Erase Jmp2
Application.EnableEvents = True
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーー

以上のようになります。

ついでに、最近では、マイクロソフトの製品もOffice365というカタチで、量販店でソフトを売るのでは無く、月額あるいは年額で、Officeを提供する形に変化してきました。
私も、普通に使っているのですが、ある意味、常に最新のOfficeが使えるので便利だったりします。
加えて、クラウドストレージとして1TBが付いてくるので、結構、これも便利です。
マイクロソフトオンラインストアで購入出来ます。






Outlook.comアカウント再接続手順

Webメールを使っている場合には、気にしなくていいのですが、メールクライアントOutlook 2013(&2016)を使っている場合には、再接続手順に沿って作業を行わないと、メールが送受信出来ないとのことです。

なぜ、そのような事が起こるのかというと、Outlook.com側のサーバ仕様が変更になったため、送受信情報に不一致が起きて、メールが送受信出来なくなるというモノに起因するんだそうです。

行う作業としては、至極単純なのですが、メールクライアントを設定するのは、

パソコンを購入した時

だけで、それ以降は、使えていれば永劫、設定を変更することは無いと思います。

で、至極単純と書いたのは、パソコンを購入した時にOutlook 2013や2016を設定したことを、そのままもう一度行うというものです。

ただ、既に、今まで使用していたプロファイルが存在しますので、新しいプロファイル名で作成し直して、新しく作ったプロファイルを常に使用するプロファイルとして設定するという、ちょっとだけ面倒くさい作業が追加されます。

では、Windows 7 + Outlook 2013 を用いて説明をいたします。
Windows 10やOutlook2016を使っていても、機能の位置関係が変わってくる場合がありますが、大体同じところに機能は用意されているので、もし、不明な手順があれば、お問い合わせください。

1.「コントロールパネル」を開きます。

2.「ユーザーアカウントと家族のための安全設定」をクリックします。
※コントロールパネルの表示方法がカテゴリ以外の場合には、3へ進んでください。

3.「メール」をクリックします。

4.メール設定画面が表示されるので、「プロファイルの表示」をクリックします。
メール設定画面

5.既に設定されているプロファイルが1つ以上、リストアップされているはずです。
プロファイル一覧

6.「追加」をクリックします。

7.新しく追加するプロファイル名を入力します。
プロファイル名

8.アカウント設定内容を入力し、次へをクリックします。
名前・メールアドレス・パスワードを入力します。
今回は、Outlook.comのメールなので、アカウント情報を自動的に引っ張ってきてくれるので、手動設定は利用しません。
プロファイル作成認証情報入力

9.設定を探す画面になりますので、先に進めるまで待ちます。
プロファイル作成認証中

10.おめでとうございます。と表示されると「完了」がクリック出来るようになるので、「完了」をクリックします。
プロファイル作成最終段階

11.プロファイルの新規作成が完了しました。
プロファイルの完成

12.今作成した新しいプロファイルを常に使うようにするために、「常に使用するプロファイル」をクリックし、プルダウンから、今作成した新しいプロファイルを選択し、「適用」をクリックし、「OK」をクリックします。
常に使用するプロファイルの選択

以上で、Outlook.comへ再接続するための設定が完了しました。

それでは、改めて、メールクライアント【Outlook 2013 あるいは Outlook 2016】を起動してみてください。
Outlook起動中

今まで送受信して溜まったメールを全て同期し始めます。
この状態でも、全ての機能は使えますが、過去のメールにさかのぼりたい場合やメールを検索したいといった場合には、同期が完全に完了するまで、Outlookを立ち上げたままにして処理が完了するのを待ってください。
同期中






[無料]サーバーダウン状況を調査する無料ツール

GoogleやFacebook、Dropboxなど、ネット上の主要サービスのサーバーダウン状況を調べてくれる無料ツールを紹介します。

サーバダウンを調べる

このツールの最大のポイントはその掲載量です。
下にスクロールするとわかりますが、
日常生活で使っている
ほとんどのサイトを網羅されています。

例えば、

・Gmail
・facebook
・Instagram
・Twitter
・LINE
・Amazon
・PokemonGO
・Skype
・Dropbox

など、掲載量が圧倒的です。

いつも使っているサービスが使えないと、不安ですよね?

原因がサーバーダウンなのか?
使えないのは、自分だけなのか?
不安になりませんか?

そんな時は、このツールで
調査されてはいかがでしょうか。

ダウンディテクター






[無料]Microsoft Officeの代わりになるソフト

仕事や家庭のPCで、
Microsoft Officeを
利用されている方は多いですよね。

でも、officeは安いソフト
ではありません。

昨今では、Office365と呼ばれるクラウド上にある
Microsoft Officeを使えるサービスも始まりました。
これには、オンラインストレージ1TBも付いているので、
オトクでもあります。
Office365 Solo

Office 365 Solo(Macの方もどうぞ)

Office 365 サービス更新用

Microsoft 直販サイト

それでも、送られてくるExcelやWordファイルが読めればいい。
といった方には、有償版は高く感じることがあると思います。
そんな場面で、注目されているのが、
Office互換ソフトです。

マイクロソフトのOfficeより
圧倒的に安い価格で、Officeと
同じファイルを作成・編集できます。
そんなOffice互換ソフトを
いくつかご紹介します。

LibreOffice
OpenOffice.orgの元メンバーが開発した
フリーのオフィスツール。
OpenOffice.orgと機能はほぼ同じで、
マイクロソフトオフィスと高い
互換性のあるソフトです。
海外製ですが、
標準で日本語に対応しています。
→ 以前は、OpenOfficeを使っていたんですが、今現在はLibreOfficeをOffice365と併用しています。併用している理由は、こういうのも使っておかないとねぇっていうところ。意外と互換性は優れているんですが、少しずつ細かなところで、Office365とは似ても似つかないところがあります。その部分は、もしかすると著作権の問題なのかもしれませんね。

OpenOffice.org
オープンソース方式で開発された、
無料のOffice互換ソフト。
Office代替ソフトとして草分け的存在で、
互換性もバツグンで完成度も高い。

Office Web Apps
マイクロソフトが提供する、
Microsoft Officeとの
互換性が高い無料のWEBアプリ。
WEB上でデータを更新できます。

Googleドキュメント
Officeと互換性はないけど、
Officeのように使えます。
なお、エクセルデータなどを
Googleドキュメントで
読み込むことは出来ます。
なので、Officeで作成したデータを
Googleドキュメントへ
移行することは可能です。

zoho
こちらもGoogleドキュメントと同じく、
Officeと互換性はないけど、
officeのように使えます。
エクセルデータなどを
読み込むことは出来ますので、
Officeで作成したデータを
zohoに移行することは可能です。