ハダノ元教頭が GIGAスクール と DX人材育成 について考えるブログ

AIツールでスイスイ仕事術【Keepとマクロでくじチェック】
働き方改革AI教師のバトンDX推進プログラミング入門Web標準RPA

AIツールでスイスイ仕事術【Keepとマクロでくじチェック】

🕓 1/26/2024 ↻ 2/6/2024

 DX(データとデジタルによる変革)のうち特に重要なのは、AIによる意思決定・アクションです。ゆくゆくはAIによる業務自動化で人手不足が解消され、人はより本質的な仕事に集中できるでしょう。これこそが、真の働き方改革です。

 「でも、AIなんて難しくて私には無理」とあきらめてはいませんか。どんな技術も「作る」のに比べて、「使う」だけならはるかに簡単です。高度なAI技術を手軽に使えるようにしたAIツールがたくさん出てきました。知らないうちに、手に届くところに来ているのです。

 そんなAIツールを「ふだん使い」して、スイスイ仕事しましょう。


 今回お届けするのは……

Keepで読み取ったくじの当たり判定を表計算マクロを組んでやってみた


「あーめんどくさい」くじの当たり判定

 くじは「もしかして当たるかな?」とわくわくします。しかし、鈴木アナでなくても「あーめんどくさい」となるのが当たり判定。当選番号が発表されても照合が面倒で、ついそのままにしがちです。

「あーめんどくさい」くじの当たり判定

 🔗GoogleのAI技術は無料で使える でも紹介したように、Google Keep で「画像のテキストを抽出」ができます。

 一つひとつ手で入力しなくてもくじ番号が手に入るので、あとは当選番号が含まれているか検索するだけです。表計算ソフトを使うといいでしょう。


くじの写真から Google Keep で番号を抽出

 まず、市商工会のドリームくじです。

  • くじ番号が一覧できるように重ねてスマホで撮影
  • トリミングした画像をKeepのメモに追加
  • 「画像のテキストを抽出」し、くじ番号を縦一列に整える
  • くじ番号をコピーし、表計算ソフトに貼り付ける
ドリームくじからKeepで番号を抽出

、、、これは、楽勝でした。


 次は、お年玉付き年賀状です。

 以前、スマホのカメラでスキャンし、テキストを抽出しようと試みましたが、

…  217617 -2024 2019 361139 0628T6 069T28 403327 LT8898 906E18  …

、、、となってしまい、実用に耐えません。複製防止の網掛けに惑わされるようです。

 フォトレタッチの「カラーチェンジャー」機能で網掛けを目立たなく加工したうえで、Keepで抽出すると、

お年玉付き年賀状(黄変)からKeepで番号を抽出

、、、うまくいきます。

 「ひょっとして、そのままでも大丈夫かも」と、加工せずにKeepで抽出すると、

お年玉付き年賀状からKeepで番号を抽出

、、、ほぼうまくいきました。さすが、GoogleのAIツールです。


エクセルであいまい検索

 表計算ソフトといえば、Microsoft Excel です。

  • A列に、くじの通し番号
  • B列に、くじ番号
  • C列に、当たりの表示
  • D列に、賞の等級
  • E列に、当選番号
  • F1セルに、検索したい当選番号 をセットすることにします。

 A列はもちろん、B列でも連番の部分の入力は 🔗「オートフィル」 で楽ができます。くじ番号・当選番号は0から始まる場合もあるので、セルの表示形式をテキスト(文字列)に書式設定しておきます。


 これで、必ず同じ6桁同士で比較できますが、問題は下4桁などの当選番号のあつかいです。1桁目と2桁目はなんでもよくて、残りの4桁の数字が一致するものを探すことを「あいまい検索」といいます。

 あいまい検索は、エクセルでは「ワイルドカード」、Googleスプレッドシート では(その上位版の)「正規表現」を使います。

 6桁の下4桁が 1879 なら、ワイルドカードでは ??1879 、正規表現では \d\d1879 となります。


検索自動化の願い

 エクセルで検索すれば、手作業より正確だし楽にはなります。でももし、検索を自動でやってくれたら、比較対象が多くても安心です。

 この「検索自動化の願い」を魔法使いに預けてもかなえてくれません。エクセルには、操作を記録して再生する「マクロ機能」があるのです。

 たとえて言えば、絵をかくのが苦手な人のために「なぞりがきをしたら、えかきうたを作ってくれる」ような機能です。

マクロ記録されたコード

 エクセルの場合は、操作を VBA(Visual Basic for Applications)というプログラミング言語で記録してくれます。プログラミング未経験でも、勝手にVBAに変換してくれ、切り貼りだけで一応動くマクロができます。プログラミング入門にもぴったりです。ハダノも エクセル用VBA から 汎用VB へとステップアップしてきました。


明日のため、この願い あきらめることはない

 くじの当たり判定が1回だけなら、わざわざプログラミングする必要はないかもしれません。しかし、「またやりたい」と願うのなら、プログラミングする価値はあります。

 「魔法使い」ではなく、「マクロ使い」になりましょう。


 魔導書に相当する「VBA本」は山ほど出版されていて、だれでも習得できます。ハダノが最後に買ったのは、🔗「たった1秒で仕事が片づくExcel自動化の教科書」 です。市内全教職員用の勤務時間システムを開発したときもこれが役に立ちました。 → 🔗「勤務時間取得ツール」を核とする勤務時間システム 


 「マクロの記録」で作られたコードに少し手を加えてみました。

  • 当選番号の検索をしてヒットしたら、「○等 が当たりました!」とダイアログで表示
  • 当たった等級をC列にコピー
  • 「次を検索」を繰り返し、当たり等級すべてをC列にコピーし終えたら、次の当選番号へ
  • 同じ等級の当選番号が終わったら、「○等 チェック完了」と表示
  • OK で次の等級へ、Cancel でプログラム中断
  • すべてチェックし終えたら、その旨を表示して終了
マクロ記録に修正を加えたVBAコード

、、、たったこれだけのコードで、まあまあ実用的なマクロになりました。

 「全部で何本当たったのか」については、C1 セルに =COUNTA(C2:C1048576) という関数式を設定し、セルの書式設定 - 表示形式 - ユーザー定義 で 0"本 当たり" とすることで、リアルタイムに確認できるようにしました。なんでもかんでもマクロではなく、適材適所がいいでしょう。

 ハダノ家のドリームくじと自分の年賀状は、残念ながら当たりが0本でした(動作確認のため、ダミーデータを末尾に追加……)。

 父の年賀状は、6本当たっていました。あとは、C列の当たり表示を確認してふせんをはるだけです。B列のくじ番号は撮影時の「左→右」「上→下」の順に並んでいるので、A列の通し番号を見れば位置がわかります。



iPadでマクロを動かしたい

 PCで、「くじの当たり判定」ができるようになりました。そうなると、iPadでもできそうな気がしますが、そうは問屋がおろさないのが現実です。

にあるように、iPadではVBAマクロが動きません。せっかく作ったのに残念です。


 あきらめたくなければ、エクセルのかわりに Googleスプレッドシート を使うしかありません。Google Apps Script(GAS)という、ExcelのVBAと同等のマクロ言語があります。

 エクセルのファイルをGoogleドライブに入れて、Googleスプレッドシート で開くと、表の見た目・セルの書式・関数式などほとんどそのまま変換されます。高い互換性があります。

 ただ、マクロに関してはベースとなっているプログラミング言語が違うので、そのままでは動きません。

  • エクセルの VBA …… Basic系
  • スプレッドシートの GAS …… JavaScript系

 ドイツ語と英語ぐらいの違いなので、少しがんばれば何とかなりそうです。

🔗Excel VBAとGAS(スプレッドシート)の構文を比較してみた!!

 まず、エクセルのときと同じように「マクロを記録」してみます。

マクロ記録されたコード

 あれれ、検索途中の操作が記録されていません。これは、スプレッドシートの仕様とのことです。

  • 🔗Googleスプレッドシート 検索と置換を使いこなそう!4(GAS TextFinderで 改行置換)

をよく読むと、TextFinder を使いこなすことで、AIが提案するコード以上のものが書けるようです。

 🔗「詳解! Google Apps Script完全入門」 を参考に、「くじ当たり判定マクロ」をVBAからGASへ移植してみました。

VBAマクロから移植されたGASコード
  • 正規表現を使うときは、.useRegularExpression() に引数 true を入れる
  • .findAll() で「全て検索」し、配列にはいったものを for ~ of で回す
  • スプレッドシート独自の Browser.msgBox ではなく、汎用的な ui.alert を使う
  • ループ中断は、break outerLoop; のようにラベルを指定する

、、、という点に気をつけ、VBA版とほとんど同じように動くGAS版マクロを作りました。

 キーボードが使えないケースも考え、「実行ボタン」 にマクロを割り当てておきます。 → 🔗スプレッドシート上でGASを実行する方法


iPadでマクロを動かすときはブラウザで

 さっそくiPadでマクロを動かしたいところですが、実はここに落とし穴があります。スプレッドシートファイルは、SafariやChromeなどのブラウザ でも 「スプレッドシート」アプリでも開けますが、マクロはアプリでは機能しないのです。 → 🔗iPadやiPhoneでGoogle spreadsheetのapp scriptを使用する方法

 ブラウザで開くしかないのですが、油断しているとアプリに誘導されてしまいます。スプレッドシートファイルへのリンクを長押ししたり、┇(3点リーダ)をタップしたりして、、、

  • 新しいタブで開く
  • 新規ウインドウで開く
  • PC版サイトを見る
  • デスクトップサイトを表示

などを選択して、何とかマクロを動かせる状態にする必要があるのです。

ブラウザで開く方法

 自分のものでないファイルを開いている場合は、ファイル - コピーを作成 で実行前にコピーを作っておきましょう。そちらを開けば、好きにいじれます。自分のデータに書き換えて実行させても安全です。

マクロ実行前にコピーを作成

 「実行ボタン」を押すとマクロが実行されますが、初回だけ認証を求められます。

マクロ実行の認証

 表計算ソフトの場合、セルをタップすると キーボード が表示されますが、大きくてじゃまです。

 右下のキーボードアイコンを長押しし、フローティング を選択しておきましょう。小さくて移動可能なキーボードに変わります。ピンチアウトすれば、元に戻ります。

フローティングキーボード

 新たなデータで実行したいときは、シート名の右の ▼ をタップ - コピーを作成 でシートのコピーを作ってから、くじ番号などを入れ替えましょう。新しく作ったシートでもマクロは同じように動きます。

シートのコピーを作成 

 拡張機能 - Apps Script で、現在のマクロを見たり編集したりできます。

拡張機能-Apps Script

 もちろん、拡張機能 - マクロ - マクロを記録 で、一からマクロを作ることもできます。

拡張機能-マクロを記録

 つまり、iPadでマクロプログラミングができるということなのです。

 PCと比べて何かと制約の多いiPadですが、「プログラミングをしたい」という願いあきらめることはない のです。


★ お待たせしました、、、

🔗「くじ当たり判定GASマクロ」入り スプレッドシートファイル 「 kuji 」 へのリンク はこちら


【結論】Keepのテキスト抽出と表計算のマクロでくじの当たり判定が楽にできる

 🔗子ども食堂のiPad活用 で、

  • プログラミングをまなび、すすんで もんだいかいけつ しよう
  • みじかなかだい をかいけつする「ローカルイノベーション」もたいせつ

と述べました。

 今回のくじチェックは、まさにぴったりな題材です。


 ビジネスマンはお金や品物など数字をあつかうことが多いため、表計算ソフトの技能が必須です。学習や日常生活でも表計算ソフトは役に立つので、子どものころから親しんでおいたほうがよいでしょう。

 PISAテストでも、

PISA2022森林面積を表計算ソフトで

と、森林面積に関する問題を表計算ソフトを使って解かせています。

 これほど一般的になった表計算ソフトですが、使いこなせているかといえば怪しいところです。マクロが組める日本のビジネスマンは1割足らずと言われています。賃金向上・生産性向上のためには、「時短」が必要です。マクロや 🔗RPA による自動化が突破口になるでしょう。


 エクセルVBA と スプレッドシートGAS をざっくり比べると、

  • エクセルは有料(プレインストール)、スプレッドシートは基本無料
  • エクセルはローカルで動き(校務PC向き)、スプレッドシートはクラウドで動く(学習端末向き)
  • VBAは古くさいが資料多数、GASは新しく資料少ないが 🔗Web標準 に近い
  • VBAはPCのみで動き、GASは全ブラウザで動く(iPadもOK!)
  • VBAはエクセルのみで動き、GASはグーグルアプリ共通で動くようにできる

 即戦力のベテランがVBA、未来的・汎用的な有望新人がGAS、、、といったところでしょうか。

 GASは、アプリ横断的に自動化できるRPAに近い存在です。実際、GoogleのRPAである AppSheet と連携させる動きも出てきました。うまく使えば、働き方改革が無料でできるかもしれません。 → 🔗AppSheetの無料プランでGoogle Apps Scriptを呼び出す


 プログラミングは、学習にも仕事にも役立つし、何より「楽しい」ということを再認識しました。大げさに言えば、「自分が自分らしくいられる」のです。 → 🔗ハダノのプログラミング遍歴

願いをあずかり管理する魔法使い

 生徒の「願い」をあずかり管理してあげる「魔法使い(権力者)」ではなく、すすんで問題解決しようとする「マクロ使い(地球市民)」として、ともに探究し続ける教師でありたいものです。

プログラミングは自己表現


※ ハダノは、Windows95のころからエクセルVBAプログラミングをしていました。
数えきれないほどVBA本を読みました。今では、Webにも様々な解説記事があり、学習に困ることは少なくなりました。
それでも吉田拳さんの本は、難解なことを明解にしてくれ、目からうろこでした。


※ GASは期待の新人ですが、参考資料が少ないのが玉にキズです。
分厚くけっこうな値段がしますが、基礎からていねいに解説しているので、初心者が買っても損はありません。
ハダノは、JavaScriptについてあいまいだった部分をこの本で学び直せました。


←前へ AIツールでスイスイ仕事術【ポスター作り】


教育DXブログの著者: ハダノ
ハダノ顔 Q大理学部生物学科数理生物学研究室にて分子進化学権威の宮田隆氏のもとFORTRANでDNA解析に没頭。F社のSEに内定していたが、科学のおもしろさを教えるため中学校理科教員を選択。
 新任のころから、「答えのない問題を追求させたい」「団結力と文化的な力を集団づくりで」「教育研究をもっと科学的に」「教育の情報化が必要」「チョーク&トークの注入式授業からアクティブラーニングへ」「教科横断的なSTEAM教育で生涯学習・SDGsへ」という思いを持ちつつ、4市10校にて勤務。
 9年間の教頭時代、さまざまな不条理・矛盾に悩み、ICTによる働き方改革を推進。2021年3月定年退職。「特定の学校だけでなく、広く人材育成を」「日本陥没をDXで食い止めたい」「元教員の自分にできることを」と、教育DX研究の道へ。
 おおいたAIテクノロジーセンター会員。デジタル人材育成学会・日本STEM教育学会・日本情報教育学会・データサイエンティスト協会・日本RPA協会の会員。JDLA G検定 2022 #1 合格者。
プライバシーポリシー  |  Copyright © 2022 HADANO