“学びたい”を刺激するメディア。

2021.09.24

column

Power QueryやVBAの本来の役割とは? プロが基礎から教えるExcel講座

Power QueryやVBAの本来の役割とは? プロが基礎から教えるExcel講座

Power Query、VBA……Excelのさまざまな機能を知りつつも、その本質的な意味について理解できていると断言できる人は意外と少ないのではないでしょうか。

そのような基礎からレクチャーされるのがSchooで毎月開講されている人気授業シリーズ「田中亨先生がみんあの悩みを華麗に解決する『今月のExcelテクニック』」。講師の田中亨先生は日本人で初めてMVP(Most Valuable Professional)Excel部門を受賞したまさにExcelのプロです。

ハマっているソーシャルゲームのキャラクター育成管理にもExcelを活用しているという田中先生。プライベートでも仕事でも「生かせる」そのテクニックを知っていきましょう!

目次

  • Power QueryとExcelで求められる発想の違い
  • MicrosoftのリボンUIが果たす役割
  • Excel VBAの持つ本来の役割とは?

 

 

Power QueryとExcelで求められる発想の違い

 

 

今回取り上げられたのは、先生のセミナーにも何度か参加しているという受講生からの画像付きの質問です。

 

「Power Queryで添付図のColumn2の1行目のみ削除し、残りを上方向にシフトするにはどのような操作をすればよいでしょうか?」と、家族構成を記載した2列の表の画像を添付してきた受講生。

 

 

 

Power QueryとはExcel2016で追加された、データをインポートして扱える機能のこと。Power Queryのセミナーを開講している田中先生ですが、この機能は「わからない」という声が多く聞かれると話します。

 

そして、その理由はPower Queryでは「Excel的な発想をしてはならない」という点にあるのではないかと推測します。「表計算ソフトとデータベースで違うんですよ」と話す先生。

 

そして、受講生の問いに対しまず「できません」と答えを返します。

 

表計算ソフトであるExcelの最小単位は「セル」です。そのため、一つのセルを削除し、全体を上にシフトするということが可能になります。一方、データベースの最小単位は「レコード」。これは、Excelでいうと「行」に相当するひとかたまりの情報です。そのため、Power Queryで一見セル単位に情報が分かれているように見えても一部を削除することは不可能なのです。

 

 

 

ここで「一例をお見せします」と先生。呼び出されたPower Queryエディターには製品番号と個数が入力された表が存在し、そのなかにマスターデータとして製品番号ごとに単価が設定されたリストが読み込まれています。また、製品番号は列の最初の5つだけ「00001」「00002」「00003」「00004」「00005」と並べられており、残りはランダムとのことです。

 

 

 

これを使ってQueryのマージという操作によって、VLOOKUP関数でよく行われるようにマスターデータから単価を呼び出します。操作の結果起こったのが、番号の入れ替わり。「00001~00005」まで昇順に並んでいたデータの並び順が変わってしまっているのです。この理由は、“データベースの世界では並び順は関係ない”から。表計算の世界では並び順が重要なのは言わずもがな。ExcelとPower Queryの性質が違うことがよくわかりますね。

 


MicrosoftのリボンUIが果たす役割

次の質問は、「リボンのユーザー設定」について。リボンのカスタマイズによってアイコンを選べるようになりますが、「それはいったいどこに出てくるのか」というのが質問者の疑問のポイントです。

 

「これは見ればすぐにわかります」と田中先生。Excelを起動し、ウィンドウをどんどん狭めていきました。すると、リボンのそれぞれにアイコンが表示されてきます。

 

 

 

リボンは正式名称をリボンUIといい、マイクロソフトは力を入れて複雑なシステムを構築しているといいます。例えば、ウィンドウの幅によってアイコンの有無など表示形式が変わるのもその工夫の一つ。

 

この背景には今やExcelはPC画面だけで表示されるものではないという事情があります。タブレットやスマホなどの小さい画面でもボタンや機能が隠れないようにする際、リボンUIは力を発揮しているということです。

 

「先日Windows InsiderにおいてSegoe UI Variableがバリアブルフォントとして標準搭載されました。Excelでバリアブルフォントを使うことはできますでしょうか」と全く別の角度からの質問も投げかけられます。そもそもバリアブルフォントとは、MicrosoftやGoogleが共同で開発した主にWebサイト向けの新しいフォントのこと。今後Excelで使えるようになるかどうかは田中先生でさえ「わからない」ということです。

 

「ここでトリビア的な話を一つ」と先生が呼び出したのが、「幅:8.44(144ピクセル)」とコメント形式で表示されたExcelの画面。

 

 

 

この「8.44」には単位が書かれていませんが、何を表しているのか皆さんは知っているでしょうか?

 

正解は“Excelで設定されている標準フォントで、0~9までの10文字について各横幅の平均をもとめ、その平均を1としたときに何文字分の幅になるか”。つまり、この数字を使えば何文字までならそのセル内で表示されるのかを判定することも可能になります。

 


Excel VBAの持つ本来の役割とは?

またしても画像付きで熱量の高い質問が寄せられました。
行によって集計したいものの個数が異なる下記の表全体で、対象のデータの個数がそれぞれいくつあるかをF-G列の表に集計したいというのが質問者の要望です。

 

 

 

簡単な方法として先生が紹介するのが「COUNTIF関数」を使う方法。

 

=COUNTIF($A$2:$D$7,F2)

 

蒸気の数式をG2セルに入力すると、ワンクリックでF2セルに入力された「A01」の個数が集計されました。

 

 

 

続いて取り上げられたのがVBAについての質問。以下2つのファイルが開かなくなってしまう場合における対処法についてです。

 

1.Openステートメントを使ったマクロを実行させたら、途中でエラーが起きた。そこで、デバッグをするとファイルが開けなくなってしまったとき

 

2.ファイルを読み込んだ後いつまでたっても読み終わらなくなってしまいEscやCtrl + Breakにも反応しないとき

 

先生はVBAをやらない受講生もいるため詳細には説明できないと前置きしたうえで、以下のコードを提示します。

 

Option Explicit

 

Sub     Macro1()
              Open “C:¥Work¥Sample.csv” For Input As #1
              Stop
              Close #1
End Sub

 

“Excel VBAというのはExcelの中に対して何か操作を行うもの”と先生はその役割を改めて強調し、CSVを外部から取り組むという機能はあくまでオプション的なものであると話します。そのため、両者の難易度は大きく異なるのです。

 

 

 

上記のようにOpenからCloseの間でStop(停止)する事態が起こったとき「一番やっちゃいけないのはマクロを止めてしまう」ことだと先生。先生はデバッグを施した後で左側に表示された矢印を動かして「Close」まで持っていき「F8」で終わらせるといった操作を推奨します。

 

なぜなら、そうしないとファイルが開けなくなってしまうから。このように適切な操作を行うためには、VBEの基本やOS、ファイルシステムの基本を学習する必要があると先生は語ります。

 

以上で、この記事で紹介する2021年5月分の授業内容は以上です。残りはぜひ、実際の授業動画でご覧になってみてください。また、先生の授業は2021年6月以降ももちろん開講予定です。お時間が合えば、ぜひリアルタイムで視聴してみてください!

 

文=宮田文机

今回取り上げたSchooの授業はこちら!
『田中亨先生が教える「今月のExcelテクニック」(2021年5月』

 

今日の生放送

おすすめ記事

ペンシルからのプッシュ通知を設定しておくと、新着記事のお知らせなどをブラウザ上で受信できて便利です。

通知を受信しますか?