プログラマ38の日記

主にプログラムメモです。

Salesforce/Excel: アプリケーションのタブを一覧表示するマクロを作成しました

どのタブをどのアプリケーションで使っているか一覧で欲しいなと思い、アプリケーションのタブを一覧表示するマクロを作成しました。

ダウンロードはこちらからです。

 

 機能は、アプリケーション毎のタブを一覧にします。

 

アプリケーションのタブを一覧表示

マクロの操作感は次の通りです。(以前から作成しているマクロと同じです)

Salesforceの接続情報を指定
②通信設定を指定
③アプリケーションタブ取得ボタンをクリック後アプリケーション毎のタブを取得

 

f:id:crmprogrammer38:20180814231726p:plain

 

表示項目は、次です

[アプリケーション]

  • Name:物理名
  • Label:表示ラベル
  • navType:ナビゲーション種別
  • utilityBar:UI種別
  • utilityBar:ユーティリティバー名
  • description:説明 

[タブ] 

  • Name:物理名
  • Label:表示ラベル

 

フィルタを使う想定で、1つのアプリケーションに複数のタブがある場合はそれぞれのIタブにアプリケーションの情報をつけています。

工夫した点は、アプリケーションの属性とタブの表示ラベルは、オブジェクトのAppDefinitionとTabDefinitionの情報も使っています。

というのもメタデータAPIのreadMeadataを使っているのですが、それだけでは表示ラベルが取得できないものがあったからになります。

 

最後に

 

SalesforceAPI操作を目的にVBAを大分書くことができました。今回のVBAでは連想配列や通常の配列などを使ってみました。(今さら感がとても強いですが) 

そもそもVBAのfunctionでは戻り値は、関数名に代入する書き方をします。(まだ慣れないです。一生慣れることはなさそうです。。)

functionの戻り値でオブジェクトを戻す際には、関数名の代入にもsetが必要というところで結構はまりました。エラーの箇所の特定も大分難しいと思いました。

 

Excel VBAは、Pythonが使えるようになるなどの情報もありますので期待して待とうと思います。