アーティサン株式会社
  • Power Automate
  • Power Platform
  • SharePoint

【小ネタ】Power Automate×SharePoint:登録者・更新者・登録日・更新日列を変更する方法

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

この記事を書いた人
小刀稱知哉

小刀稱 知哉ことね ともや

SharePoint Power Platform全般 Copilot Studio 技術アドバイス・教育支援

Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!

2025 Microsoft MVP(Power Apps・Power Automate) 2026 Microsoft MVP(SharePoint・Power Automate)
PL-200 PL-300 PL-400 PL-600 MS-700 AZ-104 AZ-305 SC-200 SC-100

今回は自分の備忘録として、Power AutomateでSharePointの登録者・更新者・登録日・更新日列を変更する方法について調査したので、紹介します。

普段はあまり使うことはないですが、データ移行などを行った場合に本内容が活用できるかと思います。

前提:やりたいこと

SharePointリストやドキュメントライブラリを作成した場合には、以下の列が自動的に作成されます。

  • 登録者 (Author): アイテムを新規追加したユーザー
  • 更新者 (Editor) : アイテムを最終更新したユーザー
  • 登録日時 (Created) : アイテムを新規追加した日時
  • 更新日時 (Modified): アイテムを最終更新した日時

上記列に関しては、SharePoint側が自動的に値を付与する仕様のため、Power Automateの標準アクション(例:項目の更新や項目の作成)では、値の編集ができません。

そこで今回は、「SharePoint に HTTP 要求を送信します」アクションを利用します。

登録者・更新者を変更する方法

最初は登録者・更新者を変更する方法です。

アクションの詳細は以下となります。

※以下は登録者列を変更する際のスクリーンショットです。

項目
方法POST
URI_api/web/lists/GetByTitle(‘<リスト名>’)/items(<ID>)/validateUpdateListItem
ボディ下記参照
{
  "formValues":[
    {
      "FieldName":"Author",
      "FieldValue":"[{'Key':'i:0#.f|membership|<メールアドレス>'}]"
    }
  ],
  "bNewDocumentUpdate":true
}

ポイントとしては、以下となります。

  • FieldName : 変更する列を指定します。
  • 登録者列の場合は「Author」、更新者列の場合は「Editor」を指定します。

  • FieldValue : 変更するユーザーを指定します。
  • |membership| の後続に、メールアドレスを指定します。

  • bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
  • trueの場合は、バージョン履歴に残りません。 一方falseの場合は、バージョン履歴に残ります。

登録日・更新日を変更する方法

続いて、登録日・更新日を変更する方法です。

アクションの詳細は以下となります。

※以下は登録日列を変更する際のスクリーンショットです。

項目
方法POST
URI_api/web/lists/GetByTitle(‘<リスト名>’)/items(<ID>)/validateUpdateListItem
ボディ下記参照
{
  "formValues":[
    {
      "FieldName":"Author",
      "FieldValue":"2112/09/03 12:00:00"
    }
  ],
  "bNewDocumentUpdate":false
}

ポイントとしては、以下となります。

  • FieldName : 変更する列を指定します。
  • 登録日列の場合は「Created」、更新日列の場合は「Modified」を指定します。

  • FieldValue : 変更する日時を指定します。
  • フォーマット: yyyy/MM/dd hh:mm:ss  ※ローカル時間での登録となります。
    例:SharePointサイトのタイムゾーンがJST(UTC+09:00)、かつ設定値が”2112/09/03 12:00:00″の場合は、2112/09/03 12:00:00(JST)( = 2112/09/03 3:00:00(UTC))にて登録される。

  • bNewDocumentUpdate : バージョン履歴に残すのか、残さないのかを指定します。
  • trueの場合は、バージョン履歴に残りません。 一方falseの場合は、バージョン履歴に残ります。

 

参考:複数列を一括更新

上記にて、登録者・更新者・登録日・更新日の各列を更新する方法をお伝えしましたが、複数列を一括で変更することも可能です。

 

参考:PnP PowerShellでも登録者・更新者・登録日・更新日列を変更することが可能

Power Automateだけではなく、PnP PowerShellでも対応は可能です。

PnP PowerShellの詳細については、以下URLをご参照ください。
PnP PowerShell の概要

以下はサンプルプログラムです。

# サイト名
$siteUrl = "https://your-tenant.sharepoint.com/sites/your-site"

# リスト名
$listName = "sampleList"

# SPOへログイン
Connect-PnPOnline -Url $siteUrl -UseWebLogin

# 更新する値
$newAuthor   = "<メールアドレス>"
$newEditor   = "<メールアドレス>"
$newCreated  = "2024/10/25 09:00:00"
$newModified = "2024/11/28 10:00:00"

# 値の更新
$itemId = 1
Set-PnPListItem -List $listName -Identity $itemId -Values @{
    "Author" = $newAuthor
    "Editor" = $newEditor
    "Created" = $newCreated
    "Modified" = $newModified
}

おわりに

今回は自分の備忘録として、Power AutomateでSharePointの登録者・更新者・登録日・更新日列を変更する方法について紹介しました。

簡単に行うのであれば、Power Automateで対応することをおすすめしますが、 大量データを更新したい場合は、PowerShellで行う方が効率的かと思います。

最後まで読んでいただき、ありがとうございました!

 

こちらも合わせて読みたい