Excelのシートを名前で指定する

Tips

スポンサーリンク

この記事で扱っていること

  • Excelのシートを数字ではなくシート名で指定させる方法

を紹介しています。

注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。

LabVIEWのReport Generation Toolkitは使いこなせればWordやExcelの操作をLabVIEWのプログラム上で扱えるため、とても便利なことが多いです。

ただ、こんな機能あったらいいのに、という機能がなかったりするので、そこはうまく補ったり、自分で組んであげないといけない部分もあります。

そんな機能のうちの一つが、Excelのシートを名前で指定する方法です。

惜しいことに、Excelのシートを数値で指定するという関数、Excel Get Worksheetと、現在指定されているシートの名前を取得することのできる関数、Excel Workbook Propertiesが独立しています。

これらをうまく駆使すれば、指定したExcelファイル中にあるシートの名前一覧を取得することができそうだと考えました。

そこで実際に以下のようなプログラムを作ってみました。

そもそも対象にしているExcelファイルにシートはいくつあるかはExcel Workbook Propertiesの関数で取得できるのでその分だけForループを回しています。

使用した際の例は以下の通りです。

これでシート名をシート1から取得することができるようになったのですが、これだけではただ取得しているだけで実用性に乏しいです。例えば、ユーザーがシートを選びやすいように工夫する必要があります。

どんな方法でもいいと思うのですが、今回はコンボボックス制御器に値を入れるという方法をとりました。こうすれば、プログラム実行時にユーザーはコンボボックス制御器を使用して選びたいシートを名前で指定することができるようになります。

さらに、最初にシート名を取得するためのループが回ってコンボボックス制御器に値が入るのには少し時間がかかるため、その間にユーザーが操作をしてしまうことを防止するために、マウスカーソルをビジー状態にする関数なども取り入れています。

こちらのプログラムも実際に動かしてどのような結果になるか動作を確認してみました。

もちろん、上記以外の組み方も考えられると思います。

Report Generation Toolkitを使用したプログラムはそれなりにデータ操作やファイルIOを駆使するのでステートマシンなどのデザインパターンと組み合わせて使用されるケースがあるかと思います。そんな中で上記の内容が誰かの役に立てば嬉しいです。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました