29

こんにちは、NTTデータ WinActor技術支援チームのN.Sです。(12月になり、一段と寒さが目立ちますね…!)
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
 
Excelのワークシートを操作するシナリオは、行や列を追加するとセルの位置が変わってしまい、
想定と違うセル位置に操作をしてしまうことがありますよね。
今回は、それを解決する方法をご紹介します!
 
 
取り扱うライブラリは、「Excel操作(値の設定)」と「Excel操作(値の取得)」です。


 
上記2つは、A1形式やR1C1形式でセル位置を指定して値を設定・取得するライブラリですが、
違う方法でセル位置を指定して動作させることが可能なのです。
違う方法とは・・・ズバリ「名前」です!
Excelには、名前の定義という機能が備わっており、セルやセル範囲・数式などに対して名前を付けることができるんですね。
(知らない!という方は、「Excel 名前の定義」などと検索すると、色々と情報が出てくるので調べてみてください)
 
 
それでは、本当に「名前」を使用して値の設定や取得ができるのか、順番に確認していきましょう!
順番は、1つ目に「値の設定」、2つ目に「値の取得」となっています。
 
 
【事前準備】
シナリオ作成に入る前にまずは、Excelに対して事前準備が必要となります。
今回テストで使用するExcelには、値を設定する箇所・取得する箇所、それぞれ1セルと複数セルのセットを設けて、
それぞれ以下のように名前を定義します。

■名前を定義する画面

 

 
 
【値の設定 シナリオ作成】
事前準備が完了したので、まずは1つ目の「値の設定」シナリオを作成していきます。
1セルと複数セルに値が張り付けられるかテストするために、ライブラリ「Excel操作(値の設定)」を2つ用意します。
それぞれプロパティ設定項目の[セル位置]には、セルに定義した名前を指定します。
[設定値]には、「N.S」と「」を設定しました。
 

ライブラリの設定が完了したので、早速シナリオ実行してみましょう。
 
 
【実行結果】
プロパティ設定項目[セル位置]に、Excelで定義した名前を指定しても、正しく値の設定ができましたね!
 

 
 
【値の取得 シナリオ作成】
それでは次に2つ目の「値の取得」シナリオを作成していきます。
1セルと複数セルの値が取得できるかテストするために、ライブラリ「Excel操作(値の取得)」を2つ用意します。
それぞれプロパティ設定項目の[セル位置]には、値の設定の時と同様にセルに定義した名前を指定します。
[格納先変数]は、「名前」と「取得値」としました。
ライブラリ「Excel操作(値の取得)」の後にノード「待機ボックス」を配置し、取得した値を確認します。
 

              

ライブラリの設定が完了したので、こちらもシナリオ実行してみましょう。
 
 
【実行結果】
1セルの方は正しく値が取得できましたが、複数セルの方は値が取得できませんでした。
(一番左上のセル値が取得できたりするのかな・・・などと思いましたが)
 

 
 
複数セルにはそれぞれ「●」「▲」「×」「■」と異なる値を設定していたので、今度は「●」のみに変更してシナリオを実行してみます。
すると、複数セルの方でも正しい値を取得することができました!
 

 
 

このように、Excelで定義した「名前」でセル位置を指定することで、値の設定や取得ができることが
お分かりいただけたかな、と思います。
 
 
最後に、Excelに定義した名前を使うことのメリット・デメリットを挙げてみたいと思います。
●メリット
 ・セル位置が変わってしまっても大丈夫!
   ⇒定義した名前が変更されない限り、名前がついているセルに対して動作するため、正しく値の設定や取得ができる
    操作したい対象のセル位置が変わってしまったことによる、シナリオの修正も不要となりますね。
▲デメリット
 ・Excelでの事前準備が必要
   ⇒あらかじめExcelで名前の定義をする手間がかかる
    項目数が少なければそれほど手間ではないかもしれませんが、多ければ多いほど手間と時間がかかりますね。
  
実際に使ってみてこんなメリット・デメリットがあったよ!といった場合には、
是非コメントや投稿などでユーザーフォーラムの皆様にも共有してくださるとうれしいです。

 
 

おわりに
この、「名前」を使って値の設定や取得ができることを知ったときは、
「え!こんなこともできるんだ!名前の定義って便利ね!」と驚きました。
 
私自身Excelの機能についてまだまだ知らないことも多いので、
こういった”技”みたいなものもたくさんあるのかなぁ、なんて思っています。
今回は結構長くなってしまいましたが、最後までコラムを読んでいただきありがとうございます。
 
 
この記事が面白かった、参考になったと思っていただけたら、ぜひ「いいね!」ボタンを押してください。
コメントもお待ちしています。
それでは、また次回!
 
※「いいね」はユーザーフォーラムに会員登録済みの方がログインしているときに押下できます。
ユーザーフォーラムの会員登録はメールアドレスがあればどなたでも無料で登録できます。
会員登録すると、質問への回答が見れたり、共有シナリオや事例集のダウンロードといった特典があります!

ri 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。