カテゴリー別アーカイブ: クラウド活用

SharepointリストでユニークなIDを自動採番する

【Sharepointリストの隠れた便利技を活用してデータ管理の効率を組織で向上させましょう】

エクセルの代わりにSharepointのリストを使う方も多くなってきているようです

リストはPower BI、Power AppsやPower Automateなどとの相性が良く、皆で共有して使いやすいです

*Power BIでリストを取得する方法はこちらから

ただリストはエクエルの延長のアプリケーションではありません

使う画面/ビューも調整することができます

今回はこのビュー機能を活用してリストでIDを自動採番する方法を解説します

連番を採番する

この記事では客先のマスターデータを作成する想定で解説を行います

上の画像にて、客先名の追加毎に連番が自動で追加されるようにします

まずは、画面右上部の「すべてのアイテム」をクリックします

次に「現在のビューの編集」をクリックします

すると次に開いた画面では「ID」の欄にチェックが入れられるようになっています

IDの欄にチェックを入れて「OK」ボタンを押すと自動的に連番が採番されるようになります

*最初、10000・・・と表示されますがF5キーを押すと正しい表示になります

連番のカスタマイズ

連番を「A001、A002、A003・・・」などという風にカスタマイズする必要があるときにはPower Automateを使用します

まずはProductID/1行テキストを事前に追加しておきます

Power Automateのトリガーは「項目が作成されたとき」を指定します

これでリストに新たなレコードが追加された時に後続の処理が走るようになります

次のアクションでは新規に作成されたIDを「1⇒001、2⇒002・・・」という風に変換します

数値の書式設定アクションの番号に「項目が作成されたとき」アクションから取得した「ID」を指定します

フォーマットには「000」を指定します(ロケールは特に指定は必要ありません)

最後に「項目の更新」アクションでリストを更新します

上記の「ID」は新規に作成されたIDではなくて「リスト」を他のリストと識別するためのIDになります

「ProductID」の欄はAを付けてカスタマイズするために「A」の次に「数値の書式設定」アクションで変換した数字を使用します

これでIDのカスタマイズが終了です

<まとめ>

今まではエクセルを皆で共有して扱うのが定番でした

ただ、エクセルの入力ルールを作成・遵守してもらうのが大変でした

その点、リストであればルールは厳格にコントロールしやすくなります

しかも今回の記事で紹介した方法を活用すればIDを基にしてルールを厳格化することが可能です

ぜひ活用してみてください

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

OUTLOOKの予定表から指定したイベントの開始時刻を一覧で取得する

【Power Automateを使用し、予定表から指定文字を件名に含むイベントの開始時刻をエクセルに一覧化します】

OUTLOOKの予定表はフォーマットを変更できないため、件名で一覧化できないのが難点ですね

ただ、Power Automateの「イベントの取得」アクションを使えば簡単に指定した内容を一覧化できます

今回はポイントだけ解説させて頂きます

ポイント

イベントの取得

イベントの取得アクションを使えば、予定表の内容/イベントを一覧で取得することができます

フィルタークエリ

取得するイベントはフィルタークエリを使用して絞り込むことができます

フィルタークエリは特殊な指定方法を使用する点に注意してください

=:eq(equalの略)

~以上(>=):ge(greater than equalの略)

~以下(<=):le(less than equalの略)

今回は2つ絞り込みを行います

contains(subject,’PA’) and ②(start/dateTime ge ‘2023-02-01’ and start/dateTime le ‘2023-02-20’)

①containsとsubjectを組み合わせることで、件名に「PA」の文字を含むイベントを抽出します

②start/dateTimeを指定することで対象イベントの日付を指定します

繰り返し処理:Applyt to each

イベントの取得アクションで取得したイベントの開始時刻は、「タイムゾーンの変換」アクションにて繰り返し変換します

加えて「表に行を追加」アクションにて既存のテーブルに「件名」と「変換後の時間」を繰り返し追加します

上記の一連の処理により「PA」の文字を含みつつ、2023年2月1日から20日までの間のイベントをエクセルに抽出できます

注意

定期的なイベントなどを抽出する場合には「イベントのカレンダービューの取得(V3)」を使用してください

<まとめ>

今回はイベントの取得アクションを使用して、予定表から指定文字を含む件名のイベントを抽出しました

今回は抽出した内容はエクセルに出力しましたが、「変数/文字列変数に追加」を使用する方法もあります

「件名」と「変換後の時間」を繰り返し追加した変数はメールで送付します

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

OneDriveのフォルダ内の全てのファイル・シートを自動変換する

今回はクラウド上のエクセルファイル内で使える、オフィススクリプト(旧VBA)とPower Automateの組み合わせで自動化処理を行います

やりたい事

OneDriveのフォルダに入れた「すべて」のエクセルファイルの「すべて」のシートを、事前に決められた内容に従って変換処理を行うことです

上の画像では、B2セルの①フォント文字を強調、②背景の色を黄色に、の2種類の変換が行われています

この①②の処理をすべてのファイル、すべてのシートで行います

ポイント

読者の皆様の中には、エクセルの記録マクロを使用した方が多くいらっしゃると思います

今回はエクセルマクロのクラウド版、オフィススクリプトで記録した内容を修正して活用します

修正した内容は、Power Automate/クラウド版RPAで動かします

Power AutomateでOneDriveのあるフォルダから全てのファイルの内容を取得し、エクセルファイルのみを選別して前述のオフィススクリプトを動かします

オフィススクリプト

記録操作

オフィススクリプトは「自動化」のタブから行います

自動化のタブをクリックすると「操作を記録」が行えるようになります

「操作を記録」を押した後に①フォント文字を強調、②背景の色を黄色、を行い「停止」を押します

「停止」を押すと、記録されたコードが「編集」から見れるようになります

コードで注目して頂きたいのは2つの点です

一つ目は「波括弧」です

{と}の間にB2セルを選択した処理が2つ書かれています

特に注目して頂きたいのが2点目です

こちらの「let」です

こちらはプログラミングの「変数」と同じ役割をします

「workbook.getActiveWorksheet()」すなわちファイル内の「アクティブ=選択・処理しているシート/単数」を「selectedSheet」に当てはめています

ですので、次に続くコードはselectedSheetすなわち「選択・処理しているシート/単数」 の 「getRange(“B2”)=B2セルの内容」 「getFormat=書式」 の 「getFont=フォント」 を 「setBold(true)=太くする」になります

次はこのletで設定する変数と、変数を使用していたコードの内容を変更します

コードの変更

この時点では、letで設定する「selectedSheet」は選択されているシートのみが対象になります

こちらを次のように変更します

「workbook.getWorksheets()」とすることで、ファイル内の全てのシート(sがつく複数形)にします

そして、次に取得したシートの全てに前述の①②の処理が行えるように修正を行います

要は繰り返し処理を行うのですが、繰り返し処理の構文*は次の通りとなります

*こちらのページのコレクションの箇所になります

for(let 変数2 of 変数1){

・繰り返し処理する内容1

・繰り返し処理する内容2

}

こちらの内容は英語の「All of ~」と同じになります

All of ~とすることで~の内容の全てが対象になります

この仕組みと同じです

ですので、letで取得したSheetsの全ての各シート:Sheetを変数2として設定します

ここで、では「Sheets」で設定した内容と「Sheet」の内容とは何が違うのか?と疑問に思われる方もいらっしゃると思います

対象は同じですが、Sheetsの方は複数形で全体そのものを指しています

一方、Sheetの方はあくまで全体の構成要素の一つ一つを指します

では、コードの修正の最後として「selectedSheet」を「Sheet」に変更します

こちらは「Ctrl+H」によって一気に変更することも可能です

コードの修正が完成したらコードの保存を行い、名称(allSheets)を付けます

Power Automate

Power Automateでは、フォルダ内にある全てのファイルを取得しつつ、各ファイルに対してオフィススクリプトを実行します

Power Automateではシナリオを実行するトリガー(起動条件*)をまず最初に選ぶのですが、今回は「インスタントクラウドフロー」すなわち手動でトリガーを選択します

*メールが届いた時、〇時に起動などを本来は選択できます

次にフロー名を付けて「手動でフローをトリガーします」を選択します

次の画面にて新しいステップを追加します

そして「OneDrive」を検索します

次にOneDrive関連のアクションから「フォルダー内のファイルリスト」を選択します

「フォルダー内のファイルのリスト」のアクションでは、該当のフォルダを設定します

この「フォルダー内のファイルのリスト」アクションにより、該当フォルダ内のファイルが一覧になります

ファイルの一覧は後述する「ID」という形で次のアクションに受け渡します

これで2つアクションが設定できました

次は「スクリプト(オフィススクリプト)の実行」アクションを設定します

スクリプトの実行アクションでは、前述のIDを指定します

上のGIF画像では、ファイル欄にIDを設定した途端に「Apply to each」というものが適用されています

これはeach/それぞれのファイルにスクリプトを実行するという意味になります

スクリプトは前述の「allSheets」を選択します

付け加えてスクリプトを実行するファイルは、拡張子が「.xlsx」に限定できるようにします

この限定作業には「コントロール」から「条件」を使用します

次に展開する画面で実際の条件を指定します

条件を設定したら、「スクリプトの実行」アクションは「はい」の下に移動します

これで「フォルダーから全てのファイルを取得」⇒「拡張子が.xlsxのファイルにてスクリプトを実行」のシナリオが完成しました

<まとめ>

今回はオフィススクリプトとPower Automateを組み合わせ、フォルダ内のエクセルファイルの全てのシートを変更する方法を解説しました

これは従来のVBAやRPAでは行えない処理です

クラウドの醍醐味がある処理だと思います

ぜひ試してみてください

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ