【27問目】博士の一問一答~アクティブなセルを操作したい
2024.11.29
今回のお悩み
今日もエクセルの質問がきてますよ博士!
やっぱりエクセル関連は悩みが多いですね。
エクセルは事務処理に欠かせないアプリじゃからのう。
して、どんなお悩みかの?
アクティブなセルを操作したいみたいです。
ふーむ、アクティブセルとな。となるとやり方は二通りあるのう。
普通に操作する方法と、ライブラリを使う方法じゃ。
やっぱりライブラリあるんですね!
普通にっていうのはよくわかんないですけど・・・
では一緒に見ていこう。
問
アクティブなセルを操作したい
アクティブセルについて
Excelのシート上で選択状態になっているセルのことを「アクティブセル」と呼びます。
WinActorではアクティブセルに対して操作をするライブラリが用意されています。
今回はこのセルに対する操作方法をご紹介します。
しかしアクティブセルに対する操作はあまりおすすめしておらんのじゃ。
なぜですか?
アクティブなセル、つまりカーソルがそこにあるセルは毎回変わるからじゃよ。
エクセルはカーソル位置が保存されるからのう。
毎回開くたびに同じセルがアクティブセルとは限らんのじゃ。
なるほど。
関係ないセルが選択されたまま開かれたらまずいってことか・・・
とりあえずやり方は紹介するが、要件によっては別の方法を探すのも良いかもしれんな。
ライブラリを使用する
一つ目の方法として、ライブラリを使用する手があります。
WinActorにはアクティブセルに対して操作を行うライブラリが用意されています。
ここでは貼り付けを例に説明します。
Excel操作(カーソル位置へペースト)
このライブラリを使えば、希望通りの動作をしてくれるでしょう。
ノードは以下の場所に格納されています。
NTTATライブラリ > 18_Excel関連 > 07_コピー&ペースト > Excel操作(カーソル位置へペースト)
プロパティの設定も非常に簡単です。
ペーストしたい対象のエクセルファイルパスを指定するだけで、アクティブセルに貼り付けてくれます。
ただし、貼り付けるデータはクリップボードの内容(windows操作でコピー中のもの)になります。
変数の内容を貼り付けたい場合は一度クリップボードのノードを使用して
必要なデータをクリップボードにコピーしておきましょう。
実行結果
実際にファイルパスを指定して「ワシじゃよ」という文字列をコピーしておき実行します。
エクセルファイルはあらかじめC3セルをアクティブにしています。
正しくペーストされました。
セルの書式がおかしくなってしまう場合は、テキストのみを貼り付ける「Excel操作(カーソル位置へ値のみペースト)」もあります。
必要に応じて使い分けると良いでしょう。
そんなことよりペーストしてる文章が気になるんですけど。
触れるでない。
エミュレーションで直接操作する
二つ目の方法は、開いたエクセルファイルに対してそのままエミュレーションで操作する方法です。
エミュレーションの使い方はこちらの記事を参照ください。
エミュレーション
エミュレーションはマウスやキーボードの入力デバイスを操作して人間と同じように動かすためのノードです。
今回の貼り付けの例を人の操作に置き換えると「右クリック→貼り付け」または
キーボードのショートカットを使用して「Ctrl + V」といったやり方になります。
例としてショートカットでの操作をエミュレーションに設定します。
一つ目の方法と異なるのは、ウィンドウ識別名が必要であることです。
エミュレーションはあくまで画面(ウィンドウ)に対して操作をしますので、ウィンドウ識別名にExcelを設定します。
操作はそのままCtrlキーを押したままVキーを押す動作を登録しましょう。
また、「Ctrl + V」は書式を含めたコピーとなる点にも注意してください。
実行結果
ライブラリで動かしたときと同様の結果になりましたね。
やっぱり気になるんだよなぁ、この文章。
触れるでない。
答
「カーソル位置の読み取り」などのライブラリを使う
もしくはエミュレーションで直接操作するのじゃ!
とまあこんな感じじゃな!
アクティブということはカーソルがそこにあるわけじゃから
そのままキーボード操作で反応してくれる。
たしかにその通りですね。
というかちゃんとライブラリも用意されてるんですね。
僕が言うのもなんですけど親切ですよね。
探せば大抵のものがライブラリで出てくるのは嬉しいところかもしれんな。
じゃがアクティブセルに対する操作は冒頭で言ったようにあまりおすすめしておらん。
別の方法も模索してみるのじゃぞ!
でも覚えておいて損ってことはないですもんね。
何かの時に役に立つかも!
選択肢が広いのは悪いことではないからのう。
ということでまた次回じゃ!
関連記事こちらの記事も合わせてどうぞ。
2024.10.18
【26問目】博士の一問一答~特定の範囲だけテスト実行したい
2024.08.01
【25問目】博士の一問一答~新バージョンにアップデートしたい
2024.07.01