その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日は伊藤潔人さんの『 Excel VBAユーザーのためのPythonプログラミング入門 』です。

【はじめに】

 本書は、Excel VBAを普段お使いの方を主な対象としたプログラミング言語「Python(パイソン)」の入門書です。
 VBAと比較しながら、Pythonの基本を速習するための本です。VBAとPythonが、どんなところが似ていてどんなところが違うのかを明確にすることで、Excel VBAユーザーの皆さんが、他の入門書より迅速にPythonの基本を理解できることを目指しています。

Memo
本書は、2020年にKindle Direct Publishingで電子書籍として出版した『VBAユーザーのためのPython超入門』を再編集して、新たな内容を加えたものです。Pythonのバージョンを2023年7月時点の最新版に改め、図版を多数追加しました。Excel VBAユーザー向けに、外部ライブラリ「xlwings」を使ったExcel操作も加筆しています。

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をより速く習得できることを目指しています。

Memo
2023年8月下旬、マイクロソフトはExcelのワークシート上でPythonを使えるようにすると発表し、そのベータ版を公開しました。これを知って、いよいよPythonを学ばなければ、と思っている方もいらっしゃるかもしれません。Pythonが使えるExcelのベータ版については、下のコラムで紹介しています。

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章で解説します。

Memo
マイクロソフトが発表したとおりExcelでPythonが使えるようになるのなら、それでExcelを操作すればいい──。そう考える方がいらっしゃるかもしれません。しかし、それは無理です。右ページで紹介するように、2023年8月下旬に発表された「Python in Excel」は、ワークシート上でPythonが使えるようになるものです。PythonでExcelの操作を自動化するには、依然として本書で解説するような手法が必要になります。

 Excel関連業務をPythonで自動化しよう、といった趣旨の書籍も随分増えました。しかし、それらの書籍で解説されている方法の多くは、Excel自体を操作するのではなく、Excelで作られたファイルを処理するものです。本書では、Excel VBAに近いコードで、Excel自体を操作する手法を紹介します。

本書では扱っていない内容

 本書はPythonの超入門といえる内容のみを取り上げています。以下のような内容は扱っていませんのでご了承ください。

  • リスト内包表記
  • 関数定義
  • 例外処理
  • ディクショナリ(辞書)
  • セット(集合)
  • クラス定義

【注目の新機能「Python in Excel」とは】
 2023年8月下旬に、Pythonが使えるExcelのベータ版が公開されました。Pythonの使えるExcelと聞くと、VBAの代わりにPythonを使ってExcelを操作できるようになると考えてしまうかもしれませんが、それは違います。Excelのワークシート上でPythonが使えるようになるもので、「Python in Excel」と呼ばれています。
 Python in Excelでは、本書の第10章で少しだけ解説する「pandas(パンダス)」などのライブラリをExcelのワークシート上で使えるようになります。Pythonはクラウドに用意されているものを使うため、パソコンに別途インストールする必要はありません。逆に、ネットにつながっていなければ使用できません。
 このベータ版では、「数式」タブの中にPython関連のコマンドが表示されます(図A)。「Pythonの挿入」ボタンなどから、セルにPythonのコードを入力できるモードに変えると、数式バーに「PY」と表示された状態になります。この状態でPythonのコードを入力して確定すると、クラウドでPythonの処理が行われ、その結果がワークシートに出力されます(図B)。
 ベータ版は、Microsoft 365 Insiderプログラムに参加していれば無償で利用できますが、正式版がどのようなライセンス形態になるのかは未定です。

図A ベータ版では、「数式」タブにPython関連のコマンドが追加されている(左)。「Python の挿入」ボタンから、数式の作成やサンプルの探索ができる(右)
図A ベータ版では、「数式」タブにPython関連のコマンドが追加されている(左)。「Python の挿入」ボタンから、数式の作成やサンプルの探索ができる(右)
画像のクリックで拡大表示
図B Pythonを入力するモードにすると、数式バーに「PY」と表示される。コードを入力して確定すると、結果がワークシートに出力される
図B Pythonを入力するモードにすると、数式バーに「PY」と表示される。コードを入力して確定すると、結果がワークシートに出力される
画像のクリックで拡大表示

【目次】

画像のクリックで拡大表示
画像のクリックで拡大表示
画像のクリックで拡大表示
画像のクリックで拡大表示
画像のクリックで拡大表示