はじめに

UiPathには、エクセル専用のアクティビティが多く存在します。

例えば「Read Cell」 アクティビティでセルの値を取得したり、「Write Cell」アクティビティで書き出すことが可能です。

では、セルの中の ”数式だけ” を取得するにはどうしたらよいでしょうか?

今回はエクセルで特定のセルの数式だけを取得する方法を2つ紹介します。

 

①「Read Cell Formula」アクティビティを使用する

「Read Cell Formula」アクティビティは、特定のセルの数式のみを取得してくれます。

ただし、複数のセル範囲は取得できないので、単一のセルの数式を取得したい場合のみ有効です。

試しに、任意のブックを作り、「A1」セルに「=B1+C1」と入力してください。

「Read Cell Formula」アクティビティでCellプロパティに「A1」と入力し、実行すると「B1+C1」と表示されます。

 

上記から分かる通り、数式を取得する際、「=」は取得しない仕様になっているので、その数式をどこかに貼り付けたいときなどは”「=」& 「Read Cell FormulaのOutput」”をWrite Cellしましょう。

 

②「Select Range」アクティビティ+「Send Hotkey」アクティビティ 

「Read Cell Formula」アクティビティは1つのセルの数式しか取得できません。

例えば特定の範囲(“A1:B5”)の数式をコピーして、別の範囲(“C1:D5”)に貼り付けたい場合等は「Read Cell Formula」アクティビティが使えません。

 

ではどうするのかというと、まず「Select Range」アクティビティで数式コピーしたい範囲を選択します。

「Range」プロパティには ”A1:B5”と入力します。

※「Select Range」アクティビティはExcel Application Scopeの内部でしか使用できませんのでご注意ください

 

次に「Send Hotkey」アクティビティで「Ctrl + C」(コピー)を送ります。

※筆者の環境では、「Select Range」~「Send Hotkey」まで連続で操作している場合、「Send Hotkey」のセレクタは特に指定しなくても問題無く動いています。

※この時、「Send Hotkey」のプロパティ「SpecialKey」にチェックを入れないように注意してください

 

そして、再び「Select Range」アクティビティで今度はコピーした数式を張り付けたい範囲を選択します。

今回は「Range」プロパティに ”C1:D5”と入力します。

 

最後は「Send Hotkey」アクティビティで「Ctrl + Alt + V」(形式選択貼り付け)を送り、直後に「Send Hotkey」アクティビティで「F」(数式を選択するため)

更に「Send Hotkey」アクティビティで「enter」を送れば数式だけが貼り付けられます

 

まとめ

今回はエクセルでセルの数式のみを操作する方法を紹介しました。

Read Cell Formulaも隠れ便利機能ですが、やはりSend Hotkeyの万能さが群を抜いていますね・・・

(だいたいのことはショートカットで解決してくれる)

 

タイミング、用途に合わせて適切な方法を選べる引き出しを持っておくとよいですね。