【Salesforce】Excel Connectorを使うとSandboxデータ管理が楽になりそう

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは植木和樹@上越妙高オフィスです。顧客情報や請求情報、AWSアカウント情報などをSalesforceで一元管理するようになったところ、営業から「このデータを使っていろいろやってみたい」という要望が出始めました。

Salesforceにもレポート機能があり、例えば、ある条件に該当する顧客と請求データを組み合わせて出力するといったことができます。しかし何段階にも関係するオブジェクトの組み合わせや、その後のデータ加工や整形といった作業には限界があるようです。

そこで「ExcelでSalesforceのデータを取得して加工できたら楽なんじゃない? きれいな帳票も作れるし、マクロで自動化もできるし」と、アンチExcel派の人が聞いたら助走をつけて殴られそうなことを思いつきました。

調べたところExcel ConnectorというExcelアドインがあったので、試しに使ってみました。

本日は試用レポートとなります。インストール手順はとばして、まとめを読みたい方はこちら

インストール

今回試した環境は下記の通りです。

  • Windows10 (バージョン 1703)
  • Microsoft Excel 2016 MSO (16.0.8201.2200) 32ビット
  • Salesforce Enterprise Edition (Winter '18)

インストール手順は Google Code Archive - Long-term storage for Google Code Project Hosting. を参考に進めました。

まず Google Code Archive - Long-term storage for Google Code Project Hosting. から下記の2つのファイルをダウンロードします。

  • SForce_Office_Toolkit_MSI.zip (Office Toolkit 4.0)
  • sforce_connector_ee_1603.zip (Excel Connecor for Salesforce.com Enterprise and Unlimited Editions)

SForce_Office_Toolkit_MSI.zip

Salesforceに接続するためのDLLが含まれたツールキットです。

まずファイルをダウンロードしてZIPを展開してください。展開したフォルダにあるSForce Office Toolkit.msiをダブルクリックし、あとは案内に従ってインストールすればOKです。

(DLLに依存するためMac版Excelでこのアドインは利用できません)

sforce_connector_ee_1603.zip

Excelのアドインです。動作させるには前述のツールキットが必要になります。

まずファイルをダウンロードしてZIPを展開しておいてください。

次にExcelを起動し、空の新規ファイルを開いておきます。

メニューバーからファイル - オプションを選択します。

アドインを選択し、設定ボタンをクリックします。

参照をクリックします。

読み込むアドインファイル(sforce_connect.xla)を選択します。ウィンドウ右下のファイルの種類をすべてのファイルにしないとファイルが表示されません。

確認画面が表示されるのではいを選択します。

有効なアドインSforce_Connectが表示されていればOKです。

Salesforceからデータを取得する

新たにExcelファイルを開くとアドインタブにForce.com Connectorが表示されています。Table Query Wizardをクリックしてください。

Salesforceのログインが求められるので、ユーザー名とパスワードを入力してLoginをクリックします。Server URLは空欄のままでOKです。

$A$1が結果を出力するセルとなっています。そのままNextをクリックします。

出力したいSalesforceのオブジェクトを選択します。今回は取引先(Account)を選択し、Nextをクリックします。

出力したいフィールドを選択します。すべて選択された状態なので、そのままNextをクリックします。

検索条件を指定します。

今回は「顧客名に クラスメソッド が含まれる」取引先を出力してみましょう。条件を指定したらRun Queryをクリックするとデータ取得が開始されます。

Excelシートに条件に合致した顧客レコードが出力されれば成功です!

取得したレコードはExcel上で自由に加工が可能です。

その他の機能

オブジェクトから指定条件のデータを取得する以外にも下記の処理が可能です。

  • Update Selected Cells ... 選択したセルの値でSalesforceのデータを更新する
  • Insert Selected Rows ... 選択した行を新たにレコードとして追加する
  • Query Selected Rows ... 選択した行を再度Salesforceから取得する
  • Describe Sforce Object ... A1セルに記載されたオブジェクト名のフィールド一覧をヘッダー行として2行目に出力する
  • Query Table Data ... 1行目に設定された条件に基いて、再度データをSalesforceから取得する
  • Delete Objects ... 選択した行のレコードをSalesforceから削除する
  • Multiple Queries ... 1シート内または複数シート内の複数のクエリーに対してデータを更新する

Table Query Wizard = Describe Sforce Object + Query Table Data + α(1行目の検索条件の設定等) となっています。

まとめ

今回はExcel Connectorを使ってSalesforceのデータをExcelに取り込んでみました。

Salesforceのレポート機能を補完する用途として使ってみての感想になりますが、良い点・良くない点をまとめてみました。

良い点

  • 顧客や案件といったオブジェクトからExcelシートにデータをひっぱってこれる。
  • 検索条件や取得する列は、マウスで比較的簡単に指定できる。
  • 一度取得したシートは再クエリーすると最新状態に更新できる。

良くない点

  • 基本1シート = 1オブジェクトしかとれない
    • Multiple Queriesを使えば1シート複数オブジェクトのデータ取得も(一応)可能
  • 複数のオブジェクトを組み合わせての取得は難しい(例:ある社員が担当する「取引先」から、現在仕掛中の「案件」を取得する)
    • IN, OUT を使ったテーブル結合は可能・・・だが使い勝手は良くない
    • JOIN_IN
  • 複数のオブジェクトをまたいだテーブルの加工・整形はExcel側で(かなりがんばって)行う必要がある
  • Excelでデータを簡単に更新・挿入・削除できる(できてしまう)

ExcelをSalesforceのレポート生成ツールとして使うには、Excel Connectorはちょっと適さないかな?という感想です。

ただ(誤操作が少々不安ですが)「Salesforceのデータを一括書き換えしたい」という時に、SOQLやDataLoaderを使うよりは簡単に使えそうです。

また、テスト環境(Sandbox)へのデータ投入や、ちょっとしたマスターデータのデータ修正の用途だとうまくマッチすると思われます。 私は頻繁にサンドボックス環境を作り直し、その度にデータが空になるため、検証に用いるデータをこれで管理・投入すると楽になりそうです。

参考資料