Outlookで添付ファイルの自動保存を目指して――Outlook のマクロは一味違う


OutlookVBAを書く際、一番驚いたのが、コードを書く場所である。最初知らなくて、全然動かない、なんでだ、、、とかなり悩んだ。

VBAのコードを書くための最初の一歩はエクセルなどと同じ。リボン部分に「開発」を表示させる。表示させるための手順も同じ。「開発」のメニューの中で、一番左の「Visual Basic」をクリックすると、コードを書きこむウィンドウが出るのも同じ。しかし、ここからが違う。エクセルとかであれば、標準モジュールを新たに挿入して、そこにコードを書いていくのだが、Outlookの場合、「Microsoft Office Outlook Objects」の下の「ThisOutlookSession」をダブルクリックして出てくるウィンドウに書く。何が違うのかよくわからないが、Outlookマクロのほとんどの例が、明示しているにせよ、当然のこととして黙示的にせよ、この「ThisOutlookSession」に書くことを前提にしている。自分なりの勝手な解釈を言うと、エクセルなりワードなりはいくつもファイルをつくり、その一つ一つに別のマクロを作れるが、Outlookは一つだけである。そのことと関係があるのではないか、と思っている。

と、ここまで書いて、改めていくつか調べてみると、VBAのコードが「Private Sub」から始まっている。これが「Public Sub」の場合もあるらしい。この違いなのかもしれない。

ただ、Outlook VBA のサンプルの多くがPrivateとなっている。やはりOutlookVBAはPrivateであり、そのため、ThisOutlookSessionに書かねばならないのだろう。

これについては、よくわかっていない。エクセルなどのVBAでもPrivateはあるみたい。もっと調べて、わかったら書こう。

 

   f:id:chamcham5628:20200902002508j:plain