Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

システム操作マニュアルを作るための試行錯誤 その4

はじめに

引き続き、「社内でデータポータルの操作をする」と仮定して、データポータルの操作マニュアルの要素を考えていきます。

前回の記事はこちらです。

lbibouroku.hatenablog.com

以前決めた操作マニュアル作成の企画書の項目は以下のとおりです。

  • タイトル
  • ターゲット
  • ベネフィット
  • 構成案
  • 販促案
  • 注意点
  • 記事の書き方

今回の記事では、マニュアル作成においての注意点を洗い出します。

目次

マニュアル作成においての注意点

一旦、マニュアル作成における懸念点を列挙してみます。

  • 求める情報が人によって違う
  • 情報の探し方が違う
    • 知りたいことがあいまい
    • 知りたいことが明確
    • 網羅的に知りたい
  • 一意に伝わる必要がある
  • 一部しか読まれないことも多々ある(流し読みされる)

このあたりは、マニュアルの構成や記事の書き方を考えるうえで重要な注意点になりそうです!

ただ、構成や記事の書き方は次回以降に考えるので、今回は別の注意点を考えてみます。

まず、マニュアルはなんのために存在するのか・・・。

大きな括りで考えると「システム操作する人が、操作方法を知るため」なので、その視点で注意点を洗い出してみました。

  • 読み手が理解しやすいマニュアルの書き方
    • 操作する人の目線で書く
  • はじめて操作する人に必要な項目
  • 統一性をもたせるために用意する項目
    • 用語集
    • スタイルガイド
    • 各記事のフォーマット

このあたりのことが決まっていると、マニュアルの流れのようなものができてきます。

すると、マニュアルの読み手も書き手もスムーズに操作や執筆ができるのではないでしょうか。

おわりに

マニュアル作成において注意することを明確にしました。これで実際に書くときに迷いが減るはずです!!

次回はとうとう「構成案」について書きます。

構成は、マニュアル作成の肝だと思っているので、気合を入れないといけないですね!!

◆今までの「システム操作マニュアルを作るための試行錯誤」の記事一覧
システム操作マニュアルを作るための試行錯誤 その1 - Kの備忘録(仮)
システム操作マニュアルを作るための試行錯誤 その2 - Kの備忘録(仮)
システム操作マニュアルを作るための試行錯誤 その3 - Kの備忘録(仮)

システム操作マニュアルを作るための試行錯誤 その3

はじめに

引き続き、「社内でデータポータルの操作をする」と仮定して、データポータルの操作マニュアルの要素を考えていきます。

前回の記事はこちらです。

lbibouroku.hatenablog.com

以前決めた操作マニュアル作成の企画書の項目は以下のとおりです。

  • タイトル
  • ターゲット
  • ベネフィット
  • 構成案
  • 販促案
  • 注意点
  • 記事の書き方

今回の記事では、マニュアルがあることで得られるベネフィットと、社内でマニュアルを浸透させるための販促案を考えます。

目次

前回決めたペルソナとそれぞれのマニュアルの使い方

ペルソナ

Aさん
営業部
入社1か月目
前職ではPCを使わなかったため、まだPC操作は不慣れ
データポータルは今まで存在も知らなかった
もちろん使うのははじめて

Bさん
人事部
入社6か月目
前職もPCを使用する仕事だったので、PC操作は問題ない
しかし、データポータルを使う機会はそこまで多くないため、データポータルの操作にはまだ不慣れ

Cさん
営業部
入社3年目
PC操作は問題ない
データポータルの操作もひととおりできるが、たまにマニュアルで操作確認することがある
また、新人教育も担当しているのでデータポータルの操作を教えることもある

マニュアルの使い方

Aさん
PC画面とマニュアルを交互に見ながら、マニュアルの上から順番に操作する

Bさん
毎日行っている操作は慣れてきたので、必要な部分だけマニュアルを見ながら操作する

Cさん
マニュアルを流し読みしながら自分の欲しい情報を探し、知りたい部分のみピンポイントで確認して操作する
新入社員にデータポータルの操作を教えることもある

得られるベネフィット

では、マニュアルがあることでどんなベネフィットが得られるのか、 現場(ペルソナたち)と会社の目線で考えてみたいと思います。

データポータルを使用している現場の視点で見ると、以下のベネフィットが得られると考えられます。

  • 複数の人に同じ情報を共有できる
  • システム操作の理解までの時間を短縮できる
  • 不明点があったときに自力で調べて解決できる
  • 操作を教える負担が軽くなる

※個人的には、マニュアルに限らず、情報共有のブログや書籍も、同じような価値があると思っています!

会社の視点で見ると、以下のベネフィットが得られると考えられます。

  • マニュアルは情報の塊→情報は会社の資産になる
  • 業務が属人化しない
  • 人件費が削減できる

マニュアルに価値を感じない人には、上記のベネフィットがあることを伝えると考えが変わるかもしれません。

社内でマニュアルを浸透させるための販促案

さて、マニュアルを作っても、現場に存在を知って活用してもらわないと意味がありません。

そこで、現場にマニュアルが浸透して活用してもらえるように、販促案を考えてみます。

  • 各部署のトップにマニュアルの有用性を理解してもらう
  • トップダウンで浸透を促す
  • マニュアル自体のクオリティを上げて使いやすいようにする
  • マニュアルを使った勉強会を開催する
  • 現場の新入社員に対してマニュアルを活用して指導してもらう

だんだんマニュアル作成後の流れが見えてきました。


ベネフィットと販促案が明確になることで、マニュアルが現場で活用される光景が見えてきました。

次回は、マニュアル作成においての注意点を洗い出します!!

おわりに

マニュアルが活用されていくことを想像しながら記事を書くのは楽しいですね。

現実でも、良いマニュアルが作れるように頑張りたいと思います!!

システム操作マニュアルを作るための試行錯誤 その2

はじめに

引き続き、「社内でデータポータルの操作をする」と仮定して、データポータルの操作マニュアルの要素を考えていきます。

前回の記事はこちらです。

lbibouroku.hatenablog.com

前回決めた操作マニュアル作成の企画書の項目は以下のとおりです。

  • タイトル
  • ターゲット
  • ベネフィット
  • 構成案
  • 販促案
  • 注意点
  • 記事の書き方

今回の記事では、タイトルとターゲットを決めます。

目次

タイトル

社内用のマニュアルなので、そんなにこだわりはいらないです。 シンプルに「データポータル操作マニュアル」で良いかと思います。

ターゲット

大きなカテゴリで考えると「データポータルを操作するすべての人」で良いかと思います。

しかし、「操作するすべての人」と一言に言っても、以下のように状況が様々です。

  • 初めてデータポータルを操作する人
  • データポータルを使ったことがあるが、まだ慣れていない人
  • データポータルの操作には慣れていて、一部の操作だけ確認したい人
  • 新入社員にデータポータルの操作を教える人

もう少しデータポータルを操作する人の状況を整理したいので、ペルソナを作ってみます。

ペルソナを作ってみよう

主にデータポータルを利用する部署は営業部とします。
用途は「営業成果のデータ可視化」です。

ただし、人事部や企画部でもデータポータルを利用しています。

まとめると、以下ように仮定できます。 営業部:利用はフォーマット化されたデータポータルを使用し、基本的に毎日同じ操作を行う 営業部以外:チームによって様々な操作をする

この仮定をもとに、ターゲットの項に記載したの、3つの状況に当てはめてペルソナを作成します。

Aさん
営業部
入社1か月目
前職ではPCを使わなかったため、まだPC操作は不慣れ
データポータルは今まで存在も知らなかった
もちろん使うのははじめて

Bさん
人事部
入社6か月目
前職もPCを使用する仕事だったので、PC操作は問題ない
しかし、データポータルを使う機会はそこまで多くないため、データポータルの操作にはまだ不慣れ

Cさん
営業部
入社3年目
PC操作は問題ない
データポータルの操作もひととおりできるが、たまにマニュアルで操作確認することがある
また、新人教育も担当しているのでデータポータルの操作を教えることもある

作ったペルソナの行動を考えてみよう

この3人の目線でマニュアルを見ると、探し方探し方がまるで異なります。

Aさんはまったくの初心者なので、PC画面とマニュアルを交互に見ながら、マニュアルの上から順番に操作します。

Bさんは、毎日行っている操作は慣れてきたので、必要な部分だけマニュアルを見ながら操作します。

Cさんは、たまに必要な操作を確認する際に、マニュアルを流し読みしながら自分の欲しい情報を探し、知りたい部分のみピンポイントで確認して操作します。   また、Cさんは新入社員にデータポータルの操作を教えることもあります。

この3人が使いやすいマニュアルを作る場合、情報の粒度は初心者のAさんに合わせつつ、BさんやCさんも使いやすいように配慮する必要があります。

よって、どこにどんな情報を載せるかの構成が重要になってきます。


これでペルソナが決まって、マニュアルを使うときの行動も想像できました。が、構成案はかなり考えることがあるため、一旦後回しにします。

次回は、マニュアルでペルソナたちが得られるベネフィットと販促案を考えます!!

おわりに

ターゲットを明確にすることで、マニュアル作成の目的がぶれなくなります。このペルソナたちが幸せになれるマニュアル案を引き続き作っていきたいと思います!

システム操作マニュアルを作るための試行錯誤 その1

はじめに

私は社内システムの操作マニュアルを作りたいと思っています。

それも、「みんなが幸せになる社内システムの操作マニュアル」です!

それはどんなマニュアルなのか・・・。
私なりに考えた結果、この人たちにとって使いやすいマニュアルとしました。

  • 操作をする人
  • 操作を教える人
  • 問い合わせ対応する人
  • マニュアルをメンテナンスする人

しかし、この人たちが使いやすいマニュアルを作成するには考えないといけないことがたくさんあります。

なので、マニュアルに載せる情報の整理と、試行錯誤の記録を残したいと思いブログを書くことにしました。

今回は「社内でデータポータルの操作をする」と仮定して、データポータルの操作マニュアルの要素を考えていきます!

目次

参考資料

主に以下の資料を活用します。

◆ノンプロ研・技術ライティング講座資料

◆仲田尚央さんのspeakerdeck speakerdeck.com

◆ヘルプサイトの作り方 gihyo.jp

◆良いFAQの書き方 gihyo.jp

前提

マニュアルを活用する会社の社内環境は以下と仮定します。

よって、googleアカウント取得方法などの説明は割愛します。

操作マニュアル作成前に決めること

マニュアルの目的は「使い方をユーザーに伝える」です。

では、良いマニュアルにはどんな要素があるのでしょうか。 参考資料をもとに調べてみました。

  • 内容が理解しやすい
  • 内容が正確である(一意に伝わる)
  • 欲しい情報が見つけやすい
  • メンテナンスしやすい

では、この要素を網羅するために、操作マニュアル作成の企画書を考えたいと思います。

企画書には以下の項目を記載します。

  • タイトル
  • ターゲット
  • ベネフィット
  • 構成案
  • 販促案
  • 注意点
  • 記事の書き方

次回から、タイトル以降を決めていきます!

おわりに

なかなか決めることが多いです・・・。でもここで整理しておけば、実際にマニュアルを作るときにラクになるはず!と思って前進しようと思います。

Pythonのenumを使って2次元リストを管理する

はじめに

前回はpandasを使って表を加工する方法を書きました。VBAでは表の加工に対して、Enumは有効でしたが、Pythonの場合は表を加工するにはpandasが適していると思うので、今回は2次元リストのデータをPythonenumを使ってを管理してみたいと思います。

今回用意したデータ

青空文庫の2022年1月のXHTML版アクセスランキングのデータを使いたいと思います。

今回は、5位までの内容を手打ちした2次元リストを用意しました。

# 青空文庫のランキング内容をリストに格納
books_list = [['〔雨ニモマケズ〕', '宮沢 賢治', 'https://www.aozora.gr.jp/index_pages/person81.html', 28940],
               ['走れメロス', '太宰 治', 'https://www.aozora.gr.jp/cards/000035/card1567.html', 24778],
               ['こころ', '夏目 漱石', 'https://www.aozora.gr.jp/cards/000148/card773.html', 22993],
               ['駈込み訴え', '太宰 治', 'https://www.aozora.gr.jp/cards/000035/card277.html', 21407],
               ['山月記', '中島 敦', 'https://www.aozora.gr.jp/cards/000119/card624.html', 19608]]

この2次元リストを使って、ランキングした本の詳細を出力するツールをenumのIntEnumクラスを使って作ります。

IntEnumクラスを活用したコード

from enum import auto, IntEnum

class Aozorabunko(IntEnum):
    title = 0
    author = auto()
    url = auto()
    clicks = auto()
    
input_ranking_number = int(input('表示したいのは何位の本ですか?'))
num = input_ranking_number -1    
    
# 青空文庫のランキング内容をリストに格納
books_list = [['〔雨ニモマケズ〕', '宮沢 賢治', 'https://www.aozora.gr.jp/index_pages/person81.html', 28940],
               ['走れメロス', '太宰 治', 'https://www.aozora.gr.jp/cards/000035/card1567.html', 24778],
               ['こころ', '夏目 漱石', 'https://www.aozora.gr.jp/cards/000148/card773.html', 22993],
               ['駈込み訴え', '太宰 治', 'https://www.aozora.gr.jp/cards/000035/card277.html', 21407],
               ['山月記', '中島 敦', 'https://www.aozora.gr.jp/cards/000119/card624.html', 19608]]

title = books_list[num][Aozorabunko.title]
author = books_list[num][Aozorabunko.author]
url = books_list[num][Aozorabunko.url]
clicks = books_list[num][Aozorabunko.clicks]

print(f'2022年1月のXHTML版 アクセスランキングは{input_ranking_number}位は{author}の{title}です。クリック数は{clicks}でした!! \n詳細のurlはこちらです→{url}')

これを実行するとこんな感じになります。

たとえば「1」と入力すると・・・

1位の「〔雨ニモマケズ〕」の情報が出力されました!

enumの解説

enumは、列挙型(定数をグルーピングして定義できる型)をサポートしています。enumには4つの列挙型のクラスがあります。

  • Enum
  • IntEnum
  • Flag
  • IntFlag

このうちのEnumクラスとIntEnumクラスについて説明します。

Enumクラスはnameとvalueというプロパティを持っています。中身を確認してみましょう。

print(Aozorabunko.clicks.name)  # 出力結果:clicks
print(Aozorabunko.clicks.value)  # 出力結果:3

今回使用したIntEnumクラスは、設定値をint型として取り扱うことができます。EnumクラスとIntEnumクラスを比較すると以下のとおりです。

from enum import Enum, auto, IntEnum

class Aozorabunko(Enum):
    title = 0
    author = auto()
    url = auto()
    clicks = auto()

class IntAozorabunko(IntEnum):
    title = 0
    author = auto()
    url = auto()
    clicks = auto()

print(Aozorabunko.clicks == 3)  # 出力結果:False
print(Aozorabunko.clicks.value == 3)  # 出力結果:True
print(IntAozorabunko.clicks == 3)  # 出力結果:True

このように整数を定数としてグルーピングしたいときは、IntEnumクラスを使う方が便利です。

おわりに

実はPythonenumは整数以外もグルーピングして定義することができます。

日を開けて、enumについてもう少し掘り下げてみたいと思います。

Pythonのpandasを使ってデータ加工してみる

はじめに

前回までに、VBA配列とEnumステートメントの活用についてを書きました。

VBA配列とEnumステートメントの活用1 - Kの備忘録(仮)

VBA配列とEnumステートメントの活用2 - Kの備忘録(仮)

今回は、Pythonで同じデータ加工を行う場合、どんな感じのコードになるのかを試してみます。使用するのはpandasというデータ加工に特化したライブラリです。

今回用意したデータ

前回と同じく、e-Statで公開されている2020年の国税調査結果の「人口速報集計(男女別人口及び世帯総数)」に手を加えたExcelファイルを使用します。

f:id:lbibouroku:20220219224242p:plain

ただし、書き込みは前回と異なり、新しいExcelを作成して転記します。理由は後述します。

データの詳細は上記「VBA配列とEnumステートメントの活用1」の記事のe-Statのリンクにてご確認ください。

また、今回はJupyter Notebookを使用します。

今回やりたい処理

こちらはほぼ前回の条件と同じですが、転記先は「新しいExcel ファイル」に変更します。

◆転記項目

  • 地域識別コード
  • 都道府県
  • 人口/総数
  • 人口/男
  • 人口/女
  • 人口密度
  • 世帯数

「a01」シートの「地域識別コードが「a」の項目かつ、上記7項目のみ新しいExcel ファイルを作成し「都道府県別総人口」シートへ転記する

pandasライブラリを使用したコード

import pandas as pd

path = 'Enum検証国税調査2020年pandas01.xlsx'
df = pd.read_excel(path, sheet_name='a01')

df2 = df[df['地域識別コード'] == 'a']
df2 = df2[['地域識別コード', '都道府県', '人口/_総数', '人口/男', '人口/女', '人口密度', '世帯数']]

path2 = 'Enum検証国税調査2020年pandas02.xlsx'
df2.to_excel(path2, sheet_name='都道府県別総人口', index=False, )

コード短い・・・!特別なメソッドなどを使わなくても簡単にデータ抽出して転記できてしまいました。

「どの項目が転記対象か」ということも一目でわかりますね。全体的にコメント書かなくても可読性に問題ないと思います。

解説

Jupyter Notebookでセルを分けて、データの状況を確認していきます。

import pandas as pd

path = 'Enum検証国税調査2020年pandas01.xlsx'
df = pd.read_excel(path, sheet_name='a01')
df.columns

ここでセルを区切って実行すると、以下のように項目(columns)が確認できます。

Index(['地域識別コード', '都道府県', '地域名', '人口/_総数', '人口/男', '人口/女',
       '2015年(平成27年)の人口(組替)', '5年間の人口増減数', '5年間の人口増減率', '人口性比', '面積(参考)',
       '人口密度', '世帯数', '2015年(平成27年)の世帯数(組替)', '5年間の世帯増減数', '5年間の世帯増減率'],
      dtype='object')

転記元データの項目名が問題なく取得できていますね。

次のセルを実行します。

df2 = df[df['地域識別コード'] == 'a']
df2 = df2[['地域識別コード', '都道府県', '人口/_総数', '人口/男', '人口/女', '人口密度', '世帯数']]
df2 

転記用に「df2」というデータフレームを用意して、対象のレコード(この場合「地域識別コードが「a」の項目)を抽出し、さらに対象の7つのcolumnsを指定しています。

df2の内容は以下のとおりです。

f:id:lbibouroku:20220220193001p:plain

↓の前回のVBAの検証のときと同じ内容ですね!(一番左は「dfのindex」なので、気にしなくて大丈夫です)

f:id:lbibouroku:20220219223657p:plain

次のセルを実行します。

path2 = 'Enum検証国税調査2020年pandas02.xlsx'
df2.to_excel(path2, sheet_name='都道府県別総人口', index=False, )

出力したExcel ファイルを確認すると、正しくデータは転記できているのですが、1行目の太字と罫線が気になります・・・。データフレームをExcelファイルに書き込むとこうなってしまうので仕方ないです・

f:id:lbibouroku:20220220192050p:plain

また、pandasのto_excelメソッドでExcel ファイルを書き出すと指定したシート以外消えるという恐ろしい仕様があるので注意です!!!

おそらく他のライブラリを使えばPythonでもちゃんと転記できると思うのですが、今回はデータ加工の部分に重きを置いたため、転記元と同じExcelファイルへの書き出しの諦めました。

pandasについて思ったこと

pandasは少しだけ使ったことがあるのですが、今回のことも含め簡単まとめると以下の3点です。

  • Pythonで表形式のデータ加工するなら、最強のライブラリなのでは?
  • csvファイルの読み書きなら、エンコードに気をつければ問題なさそう
  • Excelファイルの書き出しにクセがある

おわりに

「pandasすごいですね」って改めて思いました。それ以上の言葉が出ない・・・。

次回はとうとうPythonのリストとenumクラスの検証を行います!これがやりたかったので楽しみです!

VBA配列とEnumステートメントの活用2

はじめに

前回「VBA配列とEnumステートメントの活用」について、コードを書く準備段階の記事を書きました。(本当は1記事の予定が、長くなってしまったので2つに分けました。)

lbibouroku.hatenablog.com

今回は続きで、実際のコードを紹介します!

◆目次◆

Enumステートメントを活用したコード

さっそく前回まとめた条件でコードを書いてみましょう。

Option Explicit

Enum a01シート項目
    地域識別コード = 1
    都道府県
    地域名
    人口_総数
    人口_男
    人口_女
    人口_2015年
    過去5年間の人口増減数
    過去5年間の人口増減率
    人口性比
    面積_参考
    人口密度
    世帯数
    世帯数_2015年
    過去5年間の世帯増減数
    過去5年間の世帯増減率
End Enum
    
Sub 都道府県別総人口情報抽出()

  'ブックと各シートを定義する
    Dim wb As Workbook
    Set wb = ThisWorkbook
    
    Dim ws_a01 As Worksheet
    Set ws_a01 = wb.Worksheets("a01")
    
    Dim ws_都道府県別総人口 As Worksheet
    Set ws_都道府県別総人口 = wb.Worksheets("都道府県別総人口")
    
  '「a01」シートの内容を格納する配列arr1と「都道府県別総人口」シートに転記する配列arr2を定義する
    Dim arr1 As Variant
    arr1 = ws_a01.Cells(1, 1).CurrentRegion.Value
    
    Dim arr2() As Variant
    
  '配列arr1をカウントする変数iと配列arr2を作成するためのカウント変数numを定義する
    Dim i As Long
    Dim num As Long: num = 1
    
  '配列arr2に、配列arr1から条件に一致した値を格納する
  ’今回はarr1の項目名も配列arr2へ格納する
    For i = 1 To UBound(arr1, 1)
        If arr1(i, a01シート項目.地域識別コード) = "a" Or _
            arr1(i, a01シート項目.地域識別コード) = "地域識別コード" Then
            
            ReDim Preserve arr2(1 To 7, 1 To num)
            arr2(1, num) = arr1(i, a01シート項目.地域識別コード)
            arr2(2, num) = arr1(i, a01シート項目.都道府県)
            arr2(3, num) = arr1(i, a01シート項目.人口_総数)
            arr2(4, num) = arr1(i, a01シート項目.人口_男)
            arr2(5, num) = arr1(i, a01シート項目.人口_女)
            arr2(6, num) = arr1(i, a01シート項目.人口密度)
            arr2(7, num) = arr1(i, a01シート項目.世帯数)
            num = num + 1
            
        End If
    Next i
    
  '配列arr2の1次元目と2次元を入れかえる
    arr2 = WorksheetFunction.Transpose(arr2)

  '配列arr2を「都道府県別総人口」シートに転記する
    With ws_都道府県別総人口
        .Range(.Cells(1, 1), .Cells(UBound(arr2, 1), UBound(arr2, 2))).Value = arr2
    End With
    
End Sub

マクロ実行後の結果を見てみましょう。項目名なども一緒に転記できています。 f:id:lbibouroku:20220219223657p:plain

最後の行は「47_沖縄県」です。すべてきちんと転記できていますね! f:id:lbibouroku:20220219223758p:plain

解説

Enumステートメントを活用してる部分を抜粋して説明します。

といっても、見た目どおりですね。

例えば arr2の1次元目が1のときは「a01」シートの「地域識別コード」の列の値を格納しています。

Enumステートメントで「a01」シートのそれぞれ項目名が何列目にあるのかを定義しているから、どの項目が何列目にあるかを覚えておく必要がありません。

    For i = 1 To UBound(arr1, 1)
        If arr1(i, a01シート項目.地域識別コード) = "a" Or _
            arr1(i, a01シート項目.地域識別コード) = "地域識別コード" Then
            
            ReDim Preserve arr2(1 To 7, 1 To num)
            arr2(1, num) = arr1(i, a01シート項目.地域識別コード)
            arr2(2, num) = arr1(i, a01シート項目.都道府県)
            arr2(3, num) = arr1(i, a01シート項目.人口_総数)
            arr2(4, num) = arr1(i, a01シート項目.人口_男)
            arr2(5, num) = arr1(i, a01シート項目.人口_女)
            arr2(6, num) = arr1(i, a01シート項目.人口密度)
            arr2(7, num) = arr1(i, a01シート項目.世帯数)
            num = num + 1
            
        End If
    Next i

試しに、上記の部分をEnumを使用せずに書くとこうなります。

    For i = 1 To UBound(arr1, 1)
        If arr1(i, a01シート項目.地域識別コード) = "a" Or _
            arr1(i, a01シート項目.地域識別コード) = "地域識別コード" Then
            
            ReDim Preserve arr2(1 To 7, 1 To num)
            arr2(1, num) = arr1(i, 1)
            arr2(2, num) = arr1(i, 2)
            arr2(3, num) = arr1(i, 4)
            arr2(4, num) = arr1(i, 5)
            arr2(5, num) = arr1(i, 6)
            arr2(6, num) = arr1(i, 12)
            arr2(7, num) = arr1(i, 13)
            num = num + 1
            
        End If
    Next i

パッと見て配列arr2にどんなの項目の値を格納しているのかわかりません。コメントを付けて項目名を明示することは可能ですが。

たとえば、さらに「別の条件で情報抽出して別のシートへ転記する」という操作が複数ある場合、いちいちコメントを付けるのも面倒なうえ手作業が増えるとミスも発生しやすくなります。

以上のことから「VBAの配列とEnumステートメントの相性が良いことが証明できたのでは?」個人的には思っています。

おわりに

実は、今回VBAの配列とEnumステートメントの活用を紹介して有用性を示したのは、「Pythonのリストとenumクラスの活用は有用なのか?」を検証するためです。

なぜならPythonにはpandasという便利なライブラリがあります!

なので、次回は今回と同じ処理を「Pythonでpandasライブラリを使用したらどんなコードになるのか」を検証したいと思います。