9

質問内の誤植5箇所を修正しました。

,text → .text

 

タイトル修正しました。
旧タイトル:Excel操作(値の一括取得)を作ってみた
設定や2のバージョンを、回答に追加しました。

じっくり派のかたは、取得、設定、取得2、設定2の順に眺めてください。

 

 

Excel操作(値の一括取得)を作ってみました。

 

きっかけのスレッド

https://winactor.com/questions/question/文字列設定ieの入力欄が複数ある場合/

 

用途

  • 繰り返すのがもどかしい場面
  • スピード狂、せっかちさん向き
  • ほかのライブラリでカバーできない隙間産業

 

ベースのライブラリ

  • Excel操作(値の取得)

 

加工箇所

【1】指定されたセルを取得するブロック

  • 元の表記をバックアップ(行頭に'を入れてコメントアウト)
  • 変数の末尾に連番を入れて、好きなだけ複製

'cellAddress = !セル位置!
cellAddress1 = !セル位置1!
cellAddress2 = !セル位置2!

'Set cell = worksheet.Range(cellAddress)
Set cell1 = worksheet.Range(cellAddress1)
Set cell2 = worksheet.Range(cellAddress2)

※これ以外は使わないので、行頭に'を入れてコメントアウト

【2】変数に書き込むブロック

  • 1.と同じ要領

'SetUmsVariable $格納先変数$, cell.text
SetUmsVariable $格納先変数1$, cell1.text
SetUmsVariable $格納先変数2$, cell2.text

  • ▲ セル番地のチェックを省いた
    → 一回だけで良いので、正しいセル番地を指定してください
  • ▲ R1C1形式は切り捨てた
    → 興味あるとか、許せないかたは、補強してください

 

テスト結果

  • 1秒未満(0秒寄り)/11セル

 

所感

  • 快適っ!
  • 構想の時間、加工の労力 <<<<< 恩恵
  • ▲ ライブラリの設定画面で、対応するセル位置と格納先変数が離れがち
    → 指定されたセルを取得するブロックから変数に書き込むブロックまでをこのパターンで置き換えちゃえば、対応するセル位置と格納先変数を密にできるはず(ダイタン、未検証)

Set cell1 = worksheet.Range(!セル位置1!)
SetUmsVariable $格納先変数1$, cell1.text

Set cell2 = worksheet.Range(!セル位置2!)
SetUmsVariable $格納先変数2$, cell2.text

 

見通し

  • 類似のライブラリは、きっと同じように手軽に加工できるに違いない
  • 値の設定
  • プチライブラリの(行列の数値指定可)も
  • 値の取得2
  • 値の設定2
  • わたし自身は、WinActorからExcelを積極的に扱う機会があまりない
  • きっかけと時間と心の余裕があれば、作って続報予定
  • ただ、ほとんど同じような加工のみと思われる

 

期待

  • 便乗、ウェルカム
  • 進化させてみた
  • 補強してみた
  • これも一括化してみた
  • そもそもあれで事足りるんじゃ?
  • 一括取得/設定なら、あっちのほうが効率的なんじゃ?

 

一括シリーズのバリエーションも、眺めていただければ幸いです。

https://winactor.com/questions/?q=一括

anothersolution 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。