その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日は伊藤潔人さんの『 Excel VBAユーザーのためのPythonプログラミング入門 』です。
【はじめに】
本書は、Excel VBAを普段お使いの方を主な対象としたプログラミング言語「Python(パイソン)」の入門書です。
VBAと比較しながら、Pythonの基本を速習するための本です。VBAとPythonが、どんなところが似ていてどんなところが違うのかを明確にすることで、Excel VBAユーザーの皆さんが、他の入門書より迅速にPythonの基本を理解できることを目指しています。
VBAと比較しながらPythonを速習
Pythonに関する日本語の書籍が、この5年ほどでかなり増えました。普段Excel VBAをお使いの皆さんの中にも、Pythonが気になっている方がいらっしゃると思います。
PythonもVBAもプログラミング言語ですから、似た部分がたくさんあります。条件分岐やループ処理といった制御構文、変数はどちらにも存在します。一方で異なる部分もあります。
例えば、Pythonのfor文はVBAのFor~NextではなくFor Each~Nextに似ています。PythonのリストはVBAの配列に似ていますが、もっと操作しやすくて便利です。Pythonの文字列はオブジェクトであるため、単なるデータであるVBAの文字列操作と、かなり異なったコードを書く必要があります。
一般的なPython入門書を使ってPythonを独学する場合、こういった違いを皆さん自身が自分で読み取り、理解する必要があります。本書はそのような違いを明確にすることで、VBAユーザーの皆さんがPythonをより速く習得できることを目指しています。
Pythonでは短くシンプルに書けるケースが多い
Pythonでは、VBAなど他のプログラミング言語よりもコードを簡潔に書けるケースが少なくありません。OSに関係する処理や、インターネット上からデータを集めるような処理は、VBAよりPythonのほうがシンプルに書けます。
Pythonを使ったコードの具体例を挙げましょう。あるフォルダーの下に複数のフォルダーがさまざまな階層で存在するときに、その中にあるすべてのファイルのフルパスを調べたい、というケースがあります。このような処理は、VBAを使うよりもPythonのほうがはるかに簡単に書けます。以下のようなたった3行のコードで、Cドライブにあるtempフォルダー下のさまざまな階層にある全ファイルのフルパスの一覧を取得できます。このコードの意味については、第9章の171ページで解説します。
import glob
for path in glob.glob(r'C:\temp\**', recursive=True):
print(path)
VBAで同様の処理を行うには、自分で再帰処理を書く必要があり、もっとずっと長いコードにせざるを得ません。それに対しPythonでは、本書の第9章以降で解説する豊富なライブラリを使うことで、コードをシンプルに素早く書けます。
PythonでExcelも操作できる
Pythonを使ってExcel自体を操作することも可能です。Excel VBAよりPythonを使うほうがシンプルなコードで書ける処理もあります。そのようなPythonでExcelを操作する基本を、第11章で解説します。
Excel関連業務をPythonで自動化しよう、といった趣旨の書籍も随分増えました。しかし、それらの書籍で解説されている方法の多くは、Excel自体を操作するのではなく、Excelで作られたファイルを処理するものです。本書では、Excel VBAに近いコードで、Excel自体を操作する手法を紹介します。
本書では扱っていない内容
本書はPythonの超入門といえる内容のみを取り上げています。以下のような内容は扱っていませんのでご了承ください。
- リスト内包表記
- 関数定義
- 例外処理
- ディクショナリ(辞書)
- セット(集合)
- クラス定義
Python in Excelでは、本書の第10章で少しだけ解説する「pandas(パンダス)」などのライブラリをExcelのワークシート上で使えるようになります。Pythonはクラウドに用意されているものを使うため、パソコンに別途インストールする必要はありません。逆に、ネットにつながっていなければ使用できません。
このベータ版では、「数式」タブの中にPython関連のコマンドが表示されます(図A)。「Pythonの挿入」ボタンなどから、セルにPythonのコードを入力できるモードに変えると、数式バーに「PY」と表示された状態になります。この状態でPythonのコードを入力して確定すると、クラウドでPythonの処理が行われ、その結果がワークシートに出力されます(図B)。
ベータ版は、Microsoft 365 Insiderプログラムに参加していれば無償で利用できますが、正式版がどのようなライセンス形態になるのかは未定です。
【目次】





