2017.08.05

Visual studio community 2017でOutlookアドインを作成する

Visual studio community 2017でOutlookアドインを作成してみました。といっても、VS2015で作成したアドインをそのまま2017に移植しただけです。VS2015でOfficeアドインを作成するためにはOffice Tools for VS2015を別途インストールする必要がありましたが、VS2017では標準でOfficeアドインを作成出来るようになりました。但し、セットアッププロジェクトを作成するためには、Microsoft Visual Studio 2017 Installer Projectsをインストールする必要があります。
尚、Officeアドインが標準となったことが原因かどうかは判りませんが、VS2015のソリューションプロジェクトを開くことは出来るものの実行させるとエラーが発生してしまうため、VS2017で一からプロジェクトを作成し直しました。

新しいプロジェクトの作成でVSTOアドインを選択できます。
Newproj_2


プロジェクトメニュー→新しい項目の追加でリボン(ビジュアルなデザイナー)を追加
Ribbon_2


ボタンを追加してイメージやキャプション等を編集
Ribbonedit


ツールメニュー→NuGetパッケージマネージャー→ソリューションのNuGetパッケージの管理で、Ionic.Zipを検索してプロジェクトに追加
Nuget


であとはVS2015で作成したプロジェクトのコードをコピペで編集して終了。

今回はOutlookアドインプロジェクトとセットアッププロジェクtのソリューションソースを置いておきます(不要と思われるファイルを削除したので、何か足りないかも知れませんが・・・)。
尚、何も考えず適当に作り始めたので、アドイン名がデフォルトのOutlookAddIn1のままだったりしますが気にしないで下さい・・・

「OutlookAddIn1.zip」をダウンロード

#アドインの機能はVS2015で作成したものと同じため、今回はセットアップファイルはアップしません(といいますか、名前がOutlookAddIn1のままなのでちょっと恥ずかしい)


| | コメント (0) | トラックバック (0)

2017.06.11

Visual studio 2017の価格

Visual Studio Professional 2017が60,295円で購入できます
一方、Delphi 10.2 ProfessionalのXE6までのユーザ(ちなみに私はXE2 Pro版ユーザ)のバージョンアップ価格は120,110円です
しかもDelphiのPro版ではモバイル開発をサポートしていませんが、VSではXamarinでの開発をサポートしています。
まぁ、個人的にはモバイル開発のニーズはないんですが、値段と提供されている価値を考えますと、Delphi(Embarcadero)にももっと頑張ってほしいなぁと思います。
Delphiのバージョンアップ価格がVS Proと同等以下であればバージョンアップするのですが、VS Pro版を購入しちゃおうかなぁと思案中です。

| | コメント (0) | トラックバック (0)

2017.02.03

Outlookアドインの改良?版

前の記事で紹介した添付ファイルを暗号化ZIPファイル化するOutlookアドインは、ZIP書庫内のファイルを開く際にパスワードの入力が必要ではあるものの、ファイル名自体は丸見えですので、第三者から見られたらどんなファイルが添付されているのかがわかってしまいます。
ということで、ファイル名を見られるのはいやだという場合を考えて、添付ファイルを一旦普通にZIP書庫に圧縮して、そのZIP書庫を暗号化ZIPファイルにすれば良いのではと思って修正したのが以下になります(修正箇所のみ)。
まぁここまでやる必要があるのかということなのですが、複数のファイルを格納する場合には、ファイルを開くたびにいちいちパスワードを入力しなければならないのですが、これだと中のZIPファイルを開く時に1回だけパスワードを入力すれば、その中にあるファイルには自由にアクセスできるので複数のファイルを添付する場合にはこちらの方が便利かもしれません。


       // 添付ファイルをまとめてパスワード付きZIPファイルに圧縮する
private void button2_Click(object sender, RibbonControlEventArgs e)
{
string originalFile, compressFile, displayName, wp;
int cnt, i;
wp = GetWorkPath() + "\\";
compressFile = wp + "Attachment.zip";
//普通に暗号化圧縮しただけでは元のファイル名がわかってしまうので
//一旦Attachment.zipに通常圧縮する
cnt = mailItem.Attachments.Count;
using (ZipFile zip = new ZipFile(Encoding.GetEncoding("Shift-JIS")))
{
zip.CompressionLevel = CompressionLevel.BestCompression;
for (i = cnt-1; i >= 0; i--)
{
Attachment attachFile = mailItem.Attachments[i + 1];
originalFile = wp + attachFile.FileName;
attachFile.SaveAsFile(originalFile);
zip.AddFile(originalFile, "");
attachFile.Delete();
}
zip.Save(compressFile);
azip = compressFile;
}
//圧縮したZIPファイルをパスワードZIPファイルにする
compressFile = wp + GetZipName();
using (ZipFile zip = new ZipFile(Encoding.GetEncoding("Shift-JIS")))
{
zip.CompressionLevel = CompressionLevel.BestCompression;
zip.Password = PassWord();
//ひとまとめにしたZIPファイルを更にZIP書庫に追加
zip.AddFile(azip, "");
zip.Save(compressFile);
}

「アドインセットアップファイル」をダウンロード

※既に以前のアドインをインストール済みの場合は、一旦コントロールパネルからアンインストールした上でインストールして下さい。
※ライセンス:個人的な使用のみ可です。

| | コメント (0) | トラックバック (0)

2017.01.28

Visual studio community 2015でOutlookアドインを作成する

実はRaspberry piでIoTの実験をしていて、WindowsとRaspbianでのクロス開発をしてみたいと思いC#に手を出した次第です。
Raspbian標準のmonoは色々と不具合があったのですが、しばやんさんの記事を参考に最新版にしたところVS 2015上でコンパイルしたものをRaspbian上でそのまま実行できることから、開発効率がかなり良くなります。
ちなみに、実験していたのはRaspberry piで取り込んだセンサー信号をMQTTを使用して別のPCのMQTTサーバー(Mosquittoを使用)に送り、Windows上でそのデータを受信してリアルタイムのグラフ表示と保存を行うというものです。

ここに来てRaspberry piで遊ぶのにも飽きてきたので、なにか面白いことが出来ないかとネット上を見ていたところ、Outlookのアドイン開発の情報を見つけたのでちょっと実用的なアドインを作ってみようかと思い立った次第です。
参考にしたのは、
Outlookアドイン
DotNetZip(Ionic Zip Library)を使ってZIP書庫を作成する
Visual Studio 2010でVSTOアドインのインストーラー(msi)を作成する
です。

で、作ってみたのは、Outlookでメールに添付されたファイルをひとまとめのZIP書庫に圧縮するもので、通常の圧縮とパスワード暗号化書庫のどちらかを作成して、既に添付されたファイルを置き換えるというものです。また、パスワード暗号化を選択した場合には、パスワード通知メールも自動で作成します。
このアドインをインストールすると、Outlookの新しい電子メール作成ウィンドウのリボンメニューに「添付ファイル」が追加されます。ファイルを添付後に圧縮ボタンまたは暗号化圧縮ボタンを押すと、添付ファイル(複数可)が圧縮されてひとつのZIP書庫に置き換わります。また、暗号化圧縮を選択した場合には、パスワード通知用のメールも作成されます(元のメールで宛先を指定済みであれば、そのまま反映されます)。

元のメール
Mail1

暗号化圧縮後
Mail2

自動作成されたパスワード通知メール
Mail3


尚、ZIP書庫の作成にはDotNetZipを使用するため、プロジェクトにnugetを使用して追加する必要があります。
プログラムソースも置きますが、私はC#ド素人なので流儀がなっていない等のツッコミはなしで・・・

プログラムソースサンプルをダウンロード

アドインインストールファイルをダウンロード

尚、セットアップはアドイン実行に必要なファイルを自動的にダウンロードしてインストールします(するはずです・・・)が、msi形式のセットアップファイルを作成するのも初めてなため、必要なファイルが不足して実行できない場合があるかも知れません。
また、Windows7上のOutlook2010/2013で動作確認しましたが、予期せぬ不具合があるかも知れませんので、試される方はあくまでも自己責任でお願います。また、このアドインはVisual Studio Community 2015で作成されていることから、個人用としてのみ使用可とします。
Cocolog_oekaki_2017_01_28_09_05


| | コメント (2) | トラックバック (0)

その他のカテゴリー

Inno Setup | Lazarus | Nightly Build | Raspberry Pi | VisualStudio/C#