Q&A

回答の並べ替え:
投稿新規に質問を投稿する

複数シートがあるExcelにおいて、すべてのシートの情報をCELFに取り込みたい

m1000m m1000m

2021-11-15 16:39

Excelの入力雛形があるのですが、シート名は固定されていません。
(人によってはシートを増やして名前を任意でつけている)
Excelブック内に含まれる全シートの内容をCELFの画面に取り込み(読み込み)したいのですが何か良い方法はないでしょうか?

条件
・Excelに目次シートを持たせても構わない
・シート名を取得するのにExcelマクロは利用できない(VBA利用不可)
・RPAを使わずに実現できるのが望ましいが、困難な場合はRPA利用も許容する

シート名が特定されている場合は、悩まないのですが、不特定という条件で
どのように実装したらよいか悩んでいます。
ご教授いただきたくお願いします。

m1000m m1000m
新日本コンピュータマネジメント株式会社さま、蓼科情報株式会社さま、ご回答いただきありがとうございます。今回、手動で目次シートを作ってもらうことが運用上難しかったので(しかも、マクロを使わずに…という条件もありました)、RPAを利用する方法を詳細に記載いただいた「蓼科情報株式会社さま」をベストアンサーとさせていただきました。
ご教授いただき、ありがとうございました。
蓼科情報株式会社 蓼科情報株式会社 パートナー
メダルベストアンサー
こんにちは。

運用で目次シートに、すべてのシート名を書き込んでいただける場合は、新日本コンピュータマネジメント株式会社殿のコメントの通りで実現できると思います。
Excelブック内に含まれる全シートの名前を自動で取得するためには、CELFのRPAオプションを使用しないと実現は難しいと思います。

CELF RPAオプションで実現する場合は、
 ①Excelファイルを開く
 ②「キーをタイプする」アクションを使って、Excelのショートカットキー
   「Altキー」を押しながら「H」⇒「O」⇒「R」でシート名変更状態にする
 ③「クリップボードにコピーする」アクションを使ってシート名をコピーする
 ④「クリップボードの内容を貼り付ける」アクションを使ってシート名を任意
  のセルに貼り付ける
 ⑤④のシート名を使ってExcelを読み込む
 ⑥「キーをタイプする」アクションを使って、Excelのショートカットキー
   「Ctrlキー」を押しながら「PageDown」で次のシートに移動する
 ⑦シート分②~⑥を繰り返す ※
 ※④で取得したシート名が前回と同じであれば終了です。
  また、最初に先頭シートに移動しておく必要がある場合は、⑥を「PageUp」に
  変えて前のシートに移動してシート名が同じになるまで繰り返せば先頭シート
  となります。

このようにExcelであればショートカットキーが充実していますので、「キーをタイプする」アクションと組み合わせれば色々なことができます。

メールコンタクトをとる
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
こんにちは。

シート名が不特定の場合、
条件に記載されております通り、
対象のExcelにシート名固定の「目次」シートを作成して頂き、
そのシートには指定の位置(A2~A50など)に
存在するシート名を入れていただいた方がよいと思います。

CELF側については以下の方法で実現できると思いますので、お試しいただけますか。
①"ファイルダイアログを開く"でExcelファイルを指定させる。
②「目次」シートを読み込み、シート名の一覧を取得する。
③シート名の一覧を1件ずつ繰り返し処理

また、過去の投稿のベストアンサーがアクションを作成する際の参考になると思います。
https://developer.celf.biz/questions/3790/

「Excelファイルのデータをセルにセットする」アクション部分を②で取得したシート名を活用し、③の繰り返し処理を行う想定です。

宜しくお願い致します。
メールコンタクトをとる