のののののうらがみ

カレンダーの裏程度のことしか書いてないよ

devでもadminでもない人のKAIZEN(中編)

前回、「次回は後編~!」といいながら、まさかの三部作になってしまいました。しかもだいぶ間が空いてしまいました、ごめんなさい。今回は中編です。
全記事でも言いましたが、この記事で書いている内容は当たり前のようにClassicを前提にしてます。Salseforceの画面の右上に自分のアイコンか、かわいいデフォルトのキャラクターアイコンがなければ多分Classic環境です。 

懲りずにExcel職人、ツールは凝ります

では、実際に作った画面を紹介をします。
あまりに見た目が新しいツールを導入すると、拒絶反応が大きく出るので、イチから作ることは考えていません。
どんなに優秀なツールでも、全く見知らぬものがやってくると怖がる人がいます。しかし、見慣れた物が進化してやってくると割と喜ばれます。クレジットカードや、今となっては社会インフラに近い位置にいるLINEも、普及する前までは「こわい」と言う意見をよく聞きました。私がそうでした…。
 
その拒絶反応を可能な限り減らすため、まずはオペレータが常日頃電話を取りながら手書きしている、見慣れた受付用紙に手を加えます。
 

叩き台を叩く

ここではサンプルとして、とある会社のTシャツの注文受付をするオペレーターさんのメモを使います。

f:id:nnn123:20200404162844p:plain

この用紙、だいぶ無駄な欄がたくさんありそうです。
では、まずは受付用紙の未使用欄を削除していきましょう。
 
この注文用紙でいえば、まず「管理システム」の欄。すでに印刷された「ちゅうもんくん」の文字。…印字してある必要あります…?消しましょう。Salesforceに一律で同じデータを入れればいいものは、わざわざメモ帳に残しておく必要ありません。
 
また、「旧システム受付番号」の欄。旧システムの運用はとうの昔に終了しており、紐づけしたことによる意味は全くありません。昔からある欄だから、念の為、一応残しているとの事ですが、ここ数年誰もこの欄を使っていません。
そんな欄は思い切って消しましょう。
その欄があるだけで、新人オペレーターさんの覚えることを1つ増やしてしまいます。積み重なればたくさん領域を使います。共有フォルダの「退任者個人フォルダ」の「old」フォルダに容量が食い潰されているようなものです。
 
次に、どこかのセルの値と連動して値が一意に定まるものであれば、VLOOKUP関数とかをつかって自動記入させます。
例えば「発送指定」の欄。「なし」と「発送希望日あり」が選べます。「発送希望日」が未記入ならば「なし」を選択……、いやそれ「発送希望日」を見ればわかりますよね!?それなら、IF関数で自動入力されることにしちゃいましょう。

なお、”連動する項目を書かない”という選択肢もありますが、今までの運用ルールを大きく変えてしまうとよくありません。その項目を誰かがレポートでの分析に使っているかもしれませんので、安易に「書かなくていいじゃん」はお勧めしません。

 
結果、以下のような感じです。

f:id:nnn123:20200404170342p:plain

書くべき項目が結構減りました。すっきり!
プルダウンで入力規則をつけたため、「Bタイプ」「タイプ B」「Bタイプ」などの表記揺れがなくなります
「色」の欄も、商品が食品種別に属するものだった時には表示されないように、条件付き書式を設定したりするのもいいかもしれません。
 

魔法のURLを作ろう

受付用紙がスマートになったら、次はパラメータ生成です。
前回、改行の入れ方についてちょっと言及しましたが改行や半角スペースなどの記号はURLエンコードしないとうまく動きません。そこで、ENCODEURL関数を使って置き換えましょう。
 
=新規作成用URL&"&"&項目ID&"="&ENCODEURL(入れたいデー)

ちょっと&が多くてわかりづらくなってしまいましたが、前の記事でご紹介したパラメータの指定を関数で引っ張ってきているだけです。おさらいとして載せておきます。

(新規作成用URL)
&(項目ID)=入れたいデータ)

また、ENCODEURL関数の中のデータは、文字列に直接「%20」とか書く必要はありません。改行も半角スペースも好きなように使ってください。

URL生成時は可能な限り1つのセルに関数を一気に書き連ねるのではなく、メンテナンスのことも考えて別セルから結合させることをお勧めします。この記事を読んでいるあなた以外でも、メンテナンスができるように、ツールの情報はきれいに整理しましょう。
 
私は以下のように作成してみました。F1セルに入っている結果が、レコード作成用URLです。

f:id:nnn123:20200404181932p:plain



URLをただ開くだけ。そこにひと手間

新規作成用URLと各項目用パラメータを結合して、レコード作成用URLができました。
早速、HYPERLINK関数でURLを開くボタンを作ろう!と思うかもしれませんが、ちょいとお待ちを。

実はハイパーリンク関数は255文字以上のURLに対応していません。
項目数が多い場合、255文字を超えることもあるでしょう。
そのままExcelシートからURLをコピーして、ブラウザのアドレスバーに打ち込む方法もありですが、せっかくだったら直接Excelシートから開きたいですよね。その場合はURLをブラウザで直接開くための、マクロを使っていきましょう。大丈夫、簡単です。

 

まず、Alt+F11を押してVBAを起動させます。
左側の「標準モジュール」から、「Module1」をダブルクリックするとエディタが出てきますので、以下のコードを記載します。

Sub URLOpen()

  Dim URL As Variant
  Dim Browser As Variant
  
  'ダブルコーテーションの間に、ブラウザのexeファイルの場所を書きます
  Browser = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
  
  '生成したレコード作成用URLのセル(F1)を参照させます
  URL = Cells(1, 6)
  
  Shell Browser & URL, 1
  
End Sub

書き換える所は、ジャンプしたいURLが書かれたセルを指定するところと、その端末のChromeの実行ファイル(.exe)がある場所です。

Chrome起動を前提にしましたが、IEの場合でも同じように実行ファイルのある場所をフルパスで指定すればいいだけです。敢えて規定のブラウザ以外で開きたいという時にも有効です。
記入出来たらVisualBasicの画面は閉じちゃいましょう。
 
いいですねー。
最後に「魔法をかける」ボタンでもつけておきましょう。適当に図形やボタンを作って、そこに今回作ったマクロ「URLOpen」を割り当てるだけです。

f:id:nnn123:20200404184417p:plain

これで、ボタン一つでレコードを作る画面までたどり着けました。

あとは保存を押せばいいだけ。完成です!
 

 すでに保存されたレコードに追記したいとき

さて、このTシャツ発注受付メモは受付窓口で使うことを想定して電子化しましたが、この受付用紙は隣のフロアの配送担当者に渡す必要があります。どうやって渡しましょう。一度印刷して持っていきますか?…せっかく電子化したのに?
配送担当者も、Salesforceへの入力が楽になるならそのメモ帳を使いたいと言ってくれています。

つまり、既に存在するレコードに対して更新を加えたい。レコードタイプが変わっても使いたい。そんな時、どうすればいいでしょうか。

寄り道

今回は開発者(dev)でも管理者(admin)でもない人向けの記事ですので、「レコードタイプって何ぞや!」という方向けに、簡単に書くと…
レコードタイプとは==================
入力できる項目を変えたり、見ることができる人を設定できるフォーマットのことだよ
これを切り替えると画面の配置とか変えられるよ
===============================
承認者に承認を依頼すると、承認者用の記入項目が出てくる、みたいなことができます。
…なにやら黒い帽子をかぶったひよこさんが出てきそうな書き方になっちゃいましたが、詳しく知りたい方はぜひ「レコードタイプ Salesforce」とかで検索してください。いい感じのブログやTrailheadが出てきます。

これはちょっとひと手間が必要ですが、もちろんできます。

既存のレコードのURLに、「/e?」をつけてから、項目IDとデータを同様の方法でくっつけるだけです。「え?」って感じですよね。…なんでもないです

=既存レコードURL &"/e?"& 項目ID &"="&ENCODEURL(入れたいデー)

この方法で、配送担当者用のシートを作ってみました。

f:id:nnn123:20200405113441p:plain


ばっちりです。
これを利用すれば、あまり字が上手じゃない電話オペレータから、手書きのメモを渡されて困惑したり、住所の書き間違えで配送事故につながることがなくなります!
自部門の電話オペレータからも、隣のフロアの配送担当者からも感謝されそうです。おいしいコーヒーとロータスのキャラメルクッキーをおごってもらいましょう!

 

後編で何をやるつもり?

なんかもうちょっとネタがあるので、それを紹介しようかなあと思っています。もちろん、Salesforceを勉強したことがない人にも使ってもらえるように…!ではでは~