PowerPointの特定のテキストボックスからテキストを取得する方法

RPAエンジニア 大庭

PowerPointのスライドにあるテキストを抜き出したいとき、手動で行う場合はそのテキストボックス内のテキストを選択し、コピーする作業を繰り返し行う必要があって大変ですが、UiPathを使って自動化することができます。今回は、この作業をUiPathで行う場合の方法をご紹介します。

準備として、PowerPointのテキストボックスの名前を確認します。

  1. PowerPointのウィンドウ上部にあるリボンの「ホーム」タブの「図形描画」グループにある「配置」をクリックし、表示されたリスト内の「オブジェクトの選択と表示」をクリックします。または、リボンの「ホーム」タブの「編集」グループにある「選択」をクリックし、表示されたリスト内の「オブジェクトの選択と表示」をクリックします。実行すると、ウィンドウ右側に「選択」ウィンドウが表示され、ここでスライドごとに含まれているオブジェクトの名前が確認できます。

  2. 「選択」ウィンドウが表示された状態で、中央の「スライド」ウィンドウ内の目的のテキストボックスをクリックすると、「選択」ウィンドウの該当するテキストボックスの名前が選択された状態になるので、名前を確認できます。また、名前をクリックすると変更できる状態になるので、テキストボックスの名前を変更することもできます。

ここからはUiPathでのロボットのフローを説明します。

  1. 予め確認した複数のテキストボックスの名前を配列型変数などに格納しておきます。

  2. 繰り返し(コレクションの各要素)(UiPath.Core.Activities.ForEach)アクティビティを使い、1.の配列型変数をコレクションに指定します。

  3. For Each(繰り返し(コレクションの各要素))アクティビティのスコープ内でフルテキストを取得(UiPath.Core.Activities.GetFullText)アクティビティを使います。そのセレクターを「スライド」ウィンドウのテキストボックスの要素の動的セレクターにします。具体的には、セレクターの「name」属性の部分をFor Each(繰り返し(コレクションの各要素))アクティビティのitem変数で置き換えます。注意点として、UI Explorerを開いて親要素である「スライド」ウィンドウのセレクターを追加しておく必要があります。こうすることで、UiPathが「選択」ウィンドウ内のテキストボックスの要素ではなく「スライド」ウィンドウ内のテキストが含まれるテキストボックスを指定の要素として認識します。また、出力に適当な変数を指定します。

  4. 3.で出力した変数を1行を書き込み(System.Activities.Statements.WriteLine)アクティビティで出力し、テキストボックス内のテキストが出力されていることを確認します。

参考として、子要素を探す(UiPath.Core.Activities.FindChildren)アクティビティを使うことで、「選択」ウィンドウからテキストボックスの名前を取得する処理も自動で行うことができます。その場合、取得した子要素のコレクションをFor Each(繰り返し(コレクションの各要素))アクティビティで指定し、そのスコープの中で属性を取得(UiPath.Core.Activities.GetAttribute)アクティビティを使い、要素の「name」属性、つまりテキストボックスの名前を取得します。後は上記と同じように、その名前をGetFullText(フルテキストを取得)アクティビティで「スライド」ウィンドウのテキストボックスの要素の動的セレクターに代入します。

この方法で、UiPathでPowerPointのファイルを扱うロボットを開発してみていただければ幸いです。