Excelでセルナンバーを取得する方法

excel
studio

#1

こんにちは

Excelで特定セルのセル番号を取得する良い方法はありますでしょうか。
以下のような毎月数値を更新するファイルがあると想定します。
1

ユーザーは黄色ハイライトされた行を選択して空行を挿入します。
そして今月の数値を入力します。

Ctrl + Fで[Drag]という文字列を検索し、Send hotkeyで行を挿入することは可能ですが、そのあとの数値入力で良い方法がないかアドバイスをいただきたいです。

後続の処理のことも考慮してセル番号を取得したいですが、良い方法が見つかりません。

上の画像左上のセル番号が表示されているドロップダウンメニューから文字列の取得を試みましたが上手く取得できませんでした。

回避策として、下の図のように文字列の検索結果からGet Attributeを使用し、文字列を操作することで取得も可能でした。しかし、ブック名、シート名などに依存したストリング操作が必要になってしまいます。
(Get Textでもうまく使えませんでした。)
3

セル番号を取得するという一般的な操作で苦戦しており、お恥ずかしい限りですが、知恵をお貸しください。

よろしくお願いします。


#2

こんにちは
Get Cell Colorアクティビティを使用してはいかがでしょう?

“A” + 1、“A” + 2 と変数を+1しながらGetCellColorで黄色が取得できるまで繰り返します。

サンプルを作ってみました。

getNumber.xaml (7.5 KB)


#3

ありがとうございます!

Excelアプリ内のどこかにセル番号が表示されないか探すことに固執しており、セルの色を利用する方法を思いつかなかったです。

無事に解決できそうです。


#4

@kawata.isao さん

後からすみません、困ってはないのですが後学のためふと思いついたことも追加で質問させてください。

セルを探す方向が右(前回の質問は下へ)の場合、ようするに新規で列を挿入する場合を想定したときはどうしたらよいでしょうか。

Chr関数などを使用して対象の列が見つかるまでループで探していく方法でしょうか。
ただこの場合桁上がり(Z→AA)の処理も必要なので先の例ほどシンプルにはいかなさそうですね。

私には難易度高そうですがトライしてみます^^


#5

列名をUiPathから求めるのは難しそうです。

VBAなら以下の方法で求める事が出来るので、このファンクションを Invoke VBA で呼び出すことで
列名を求める事は出来ます。

Public Function getColName(col As String, offset As Integer) As String
Dim cellAddress As String
cellAddress = Range(col & “1”).offset(0, offset).AddressLocal(False, False)
getColName = Left(cellAddress, Len(cellAddress) - 1)
End Function

”A"から30横にずれた列名の取得するInvoke VBA

image

※ただし、Excelのセキュリティオプションを変更しないとエラーになります。

もう少しスマートな方法があれば良いのですが...


#6

毎度とても迅速にご回答いただき誠にありがとうございます。
UiPathでは難しいとのことですね。

プログラミング初学者の私には教えてくださったVBAの理解もすぐにはできませんが、勉強になりました。ありがとうございます。

勉強あるのみです。