0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate DesktopでExcelセル番地(AB12など)を解析して書き込む方法

Posted at

はじめに

Power Automate Desktop(以下 PAD)で Excel に書き込みを行う場合、実は 列番号・行番号は数値指定だけでも可能です。

たとえば、

  • 列:28
  • 行:12

という指定で、Excel の AB12 に書き込むことができます。

しかし実務では次のようなケースが多くあります。

  • ユーザーに AB12 のようなセル番地で入力させたい
  • 列を ずらしながら動的に処理したい
  • 「今はZ列、次はAA列」というように 文字列ベースで管理したい

この場合、列名(ABなど)を数値に変換する処理が必須になります。

PAD単体ではこの変換ができないため、PowerShellを組み合わせる必要があります。

本記事では、

セル番地(文字列)を入力
→ 列名と行番号を分離
→ 列名を数値に変換
→ Excelに書き込む

というフローを解説します。


完成イメージ

image.png


全体フロー構成

  1. 入力ダイアログでセル番地を取得
  2. 列名(アルファベット部分)を抽出
  3. 行番号(数字部分)を抽出
  4. PowerShellで列名を数値に変換
  5. Excelワークシートに書き込み

① 入力ダイアログを表示

使用アクション

入力ダイアログを表示

  • タイトル:セル指定
  • メッセージ:Excelのセル番地(例:A1)を入力してください
  • 出力:CellAddress

入力例:AB12


② 列名(アルファベット部分)を抽出

使用アクション

テキストの解析

  • 対象テキスト:CellAddress
  • 正規表現:[A-Za-z]+
  • 最初の一致のみ
  • 一致したテキスト → ColumnName

結果:ColumnName = AB


③ 行番号(数字部分)を抽出

使用アクション

テキストの解析

  • 対象テキスト:CellAddress
  • 正規表現:\d+
  • 最初の一致のみ
  • 一致したテキスト → WriteRow

結果:WriteRow = 12


④ PowerShellで列名を数値に変換

PADには、

  • A → 1
  • Z → 26
  • AA → 27
  • AB → 28

といった Excel列変換の標準機能が存在しません。

そのため、 PowerShellなどの外部スクリプトで補完する必要があります。


使用アクション

PowerShell スクリプトの実行

スクリプト内容

$ColumnName = "%ColumnName%"

$ColumnNumber = 0

foreach ($c in $ColumnName.ToUpper().ToCharArray()) {
    $ColumnNumber = $ColumnNumber * 26 + ([int][char]$c - 64)
}

Write-Output $ColumnNumber

出力変数:WriteColumn

結果:WriteColumn = 28

⑤Excelワークシートに書き込む

使用アクション
Excel ワークシートに書き込み

設定内容

  • Excel インスタンス: ExcelOutput
  • 列: WriteColumn
  • 行: WriteRow
  • 値: CurrentValue

この設定により、ユーザーが指定したセルに値を書き込むことができます。

WriteColumnをインクリメントしていけば、列をずらしながら(つまり右に移動しながら)セル操作ができるようになります。

おわりに

PADを初めて触ったので色々と手間取りました。設計思想からか、PADは現時点ではバイブコーディングには向いていないと感じています。

コードを直接AIへ貼り付けることができないのも驚きました。一応フローを画像としてAIへ貼り付ければ解析をしてくれますが、表示できるフローの規模にも制限があります。また、PADとクラウド版のPower Automateが混同されやすく、AIに相談しても結果としてハルシネーションが多発します。

それでも、今回のようにPowerShellを補助的に組み合わせることで、PADでも実務で使える柔軟なExcel操作が可能になると分かりました。

もっとエレガントに解決する方法などあれば、ぜひ教えてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?