VBAは書けるようになりました。マクロの記録という段階からも脱却しています。ループや条件分岐も自在に操れるようになりました。しかし、いざPythonに手を出そうとした瞬間のことです。不自然なほどに足が止まってしまうことがあります。「一体どこから手を付ければよいのだろうか」と悩みます。VBAを使える方がPythonに移行する際の話です。最も高くそびえ立つ壁があると感じています。それは、まさにこの入口部分にあるのではないでしょうか。
まず理由について考えてみます。VBAは書けるのに「Pythonの始め方」だけが分からない理由についてです。
VBAの最大の強みについてお話しします。それは、何といってもExcelを開くことです。そして「Alt+F11」を押すだけという手軽さです。これだけで開発環境(VBE)がすぐに立ち上がります。環境構築という難しい概念は存在しません。そう言っても過言ではないと感じています。
一方、Pythonにはそれがないのが現状です。インストール手順を詳しく調べると驚きます。パスを通すという作業が必要です。仮想環境を構築するという手順もあります。聞いたこともないような単語が並んでいます。エディタの種類も無数に存在します。VSCodeやPyCharmなど、選択肢が多いです。そのため、どれを選べば良いか迷ってしまいます。この段階で、早くも嫌気がさしてしまいます。コードを書く前の準備段階で力尽きてしまいます。そのような経験をされた方もいらっしゃるはずです。
Python入門、最初の壁
次に、私自身の経験をお話しします。公式サイトからPythonをインストールした日のことです。その時の記憶は今も鮮明に残っています。「Python インストール Windows」で検索しました。すると「PATHを追加するオプション」がありました。そこにチェックを入れてくださいと書かれていました。当時はその意味がよく分かりませんでした。しかし、とりあえずチェックを入れて完了させました。次に大きな問題が起きました。「どこにコードを書けば良いのか」ということです。
VSCodeが良いという記事を見かけました。一方で、PyCharmを使うべきだという記事も見つかります。
また、最初はIDLEが良いという記事もありました。結局その日は、比較記事を読み続けるだけでした。一行もコードを書かずに終わってしまいました。
VBA知識を活かすPython学習
プログラミングの基礎知識についてです。皆さんはすでに頭に入っているはずです。

VBAを経験された方なら大丈夫です。基礎知識はすでに身についているはずです。VBAで培ったロジックの組み立て方があります。それは、そのままPythonでも通用すると感じています。言語ごとの「方言」のような違いを覚えるだけです。それだけで十分に応用が利くのではないでしょうか。
VBA経験者が最初に覚えるべき機能対応
文法をゼロから丸暗記する必要はありません。VBAの「あの処理」を考えます。それがPythonだとどう書くのかという視点です。脳内で対応付け(マッピング)を行ってください。それが、一番早い学習方法ではないかと感じています。
PythonでVBA処理、ライブラリ導入
そのため、Excel操作を例にして考えてみましょう。VBAでは Worksheets("Sheet1").Cells(1,1).Value と書きます。この処理をPythonで行う場合です。openpyxlというライブラリを使用します。すると ws['A1'].value のように記述できます。非常にシンプルに書くことができるのです。
ループ処理についても、発想は同じです。VBAでは For i = 1 To 10 と記述していました。これがPythonでは for i in range(1, 11): となります。ファイル操作についても同様のことが言えます。VBAのDir関数などの代わりとなるものです。Pythonでは os.path や pathlib を使います。これらのライブラリを活用することになります。
pipでライブラリを入れましょう
まずは、pipでopenpyxlをインストールします。たったそれだけで準備は完了です。外部からExcelファイルの読み書きができます。それがあっけなく完了することに驚くはずです。きっと、感動を味わえるのではないかと思います。
VBA感覚でPython、…
VBAでコードを動かす時の話です。ほとんどの方はVBEを開くはずです。そして、F5キーを押すのではないでしょうか。あるいは実行ボタンをクリックすることもあります。コードを書く場所と動かす場所が同じです。これが一体化しているのは大きなメリットです。しかし、Pythonではこの感覚が崩れてしまいます。インストールが無事に完了しました。pipでopenpyxlも入れました。でも、コードをどこで動かせば良いのでしょうか。そこで戸惑ってしまう方が多いのです。
VBA感覚でPython!Jupyter Notebo…
エディタを比較した末の仮定です。例えばVSCodeを選んだとしましょう。Pythonファイルを保存します。次にターミナルを開く必要があります。python sample.pyと打ち込みます。すると結果がそこに表示されます。VBAのイミディエイトウィンドウを思い出します。一行だけ試したい場合でも手順が多いです。一度ファイルに保存して実行する必要があります。これでは開発のテンポが落ちてしまいます。そう感じるのも無理はありません。この「試しに動かす」ハードルの高さです。これがPythonを敬遠する理由だと感じます。

次に、解決策についてお話しします。Jupyter Notebookというツールについてです。
VBA経験者がJupyter Notebookに馴染む…
そこで活用したいのがJupyter Notebookです。これは、Webブラウザ上で動作します。Pythonコードを記述し、実行できる環境です。対話的な開発ができるのが特徴です。コードとその実行結果を保存できます。説明文や画像も一緒に管理できます。これらを「ノート」としてまとめられます。VBAのVBEとは見た目が異なります。しかし、その中にある思想は共通しています。VBAに慣れた方にとって馴染みやすいはずです。
Jupyter Notebookが馴染みやすい理由
まず、最大の利点についてです。コードを「セル」という単位で区切ります。そして部分的に実行できる点にあります。これはVBAのステップ実行に似ています。あるいはイミディエイトウィンドウの感覚です。特定の変数の中身を確認する作業と同じです。たとえば、Excelファイルを開くセルを作ります。次のセルで値を読み出す処理を書きます。このような試行錯誤が簡単にできます。VBAでデバッグするあの感覚です。それがJupyter Notebook上で再現できるのです。
Anacondaを使った簡単なインストール
Jupyter Notebook、…
インストールにはいくつかの方法があります。非エンジニアの方におすすめの方法です。最も手軽なのはAnacondaを利用することです。これはPythonのディストリビューションです。公式サイトのものは「素のPython」です。そこには最低限の機能しか含まれていません。
一方でAnacondaは非常に多機能です。Python本体に加えて多くのツールがあります。科学計算で使われるNumPyやPandasです。画像を描画するMatplotlibも含まれます。これら主要なライブラリが揃っています。Jupyter Notebookも最初から入っています。これらをひとまとめに提供してくれます。

💡 ここで一度立ち止まって考えてみてください
PythonやExcel自動化スキルを持ったまま、ITエンジニアとして転職したい方には「EBAエデュケーション」が選択肢です。企業が求めるエンジニア像に合わせたカリキュラムで、実務直結のスキルを習得できます。
Anacondaによる依存関係解決
次に、なぜAnacondaが便利なのかを説明します。ライブラリ管理の問題を解決してくれるからです。いわゆる「依存関係」の問題を吸収してくれます。例えば、ライブラリAがバージョンXを求めます。一方でライブラリCはバージョンYを求めます。このような状況はよく発生するものです。個別にpipで入れると大変です。あるライブラリを入れると他が動かなくなります。そのような事態に陥りやすいのです。特にWindows環境ではこの問題が多いと感じます。
Anacondaはこうした問題を解決してくれます。複雑な依存関係を適切に整理します。互換性のあるライブラリ群をまとめてくれます。これらをパッケージとして提供してくれます。いわば「道具が全部入った箱」のようなものです。そう考えれば分かりやすいと思います。これにより、環境構築の手間が減ります。余計なストレスを大幅に削減できるのです。
Jupyter Notebook起動と実践
Anacondaのインストールが終わった後の手順です。Anaconda Navigatorというツールを使います。そこからJupyter Notebookを起動できます。あるいはコマンドプロンプトも使えます。jupyter notebookと入力するだけです。すると自動的にブラウザが立ち上がります。インターフェースが表示されるはずです。これは、裏側で「サーバー」が動いているためです。ブラウザは「クライアント」として動作します。
サーバーは皆さんのローカルPCで動きます。ブラウザはそのサーバーに接続しています。そこでコードの送信や結果の受信を行います。これにより、Webページを操作する感覚になります。そのようにしてPythonを実行できるのです。それでは新しいノートブックを作りましょう。そしてコードを記述してみます。以前の記事にあった内容を試しましょう。openpyxlを使ったExcel操作です。
openpyxlでExcelデータ書き込み
import openpyxl

# 新規ワークブックを作成
wb = openpyxl.Workbook()
# アクティブなシートを取得
ws = wb.active
# セルA1に値を書き込む
ws[‘A1’] = ‘Pythonから書き込み’
# セルB2に数値を書き込む
ws[‘B2’] = 123
# セルC3に計算式を書き込む
ws[‘C3’] = ‘=A1&” “&B2’
# ワークブックを保存
wb.save(‘sample_python_output.xlsx’)
実行結果とExcel出力の確認
このコードをセルに貼り付けてください。「Shift + Enter」で実行します。すると、コードの下に結果が表示されます。エラーが出なければ成功したことを意味します。もしエラーが起きたとしても大丈夫です。どこで問題が起きたのかが表示されます。これを「トレースバック」と呼びます。VBAの黄色いハイライトとは少し違います。しかし、メッセージを読めば特定できます。この段階ではエラーを恐れないでください。修正しながら学ぶのが醍醐味だと私は思います。
実行後にファイルを確認してみましょう。sample_python_output.xlsxという名前です。実際にそのExcelファイルを開いてみます。セルA1には「Pythonから書き込み」とあります。セルB2には「123」が入っています。さらにセルC3を確認してください。正しく計算された値が書き込まれているはずです。VBAでマクロを組んでいた時と同じです。確かにExcelを操作している感動があります。その喜びをぜひ味わってください。
Jupyter NotebookでPython学習と効…
大規模な開発には向かない面もあります。しかし、定型業務の自動化には最適です。データ集計やレポート作成で真価を発揮します。特に移行の初期段階におすすめしたいです。挙動を一つずつ確認しながら進められます。学習にはこれ以上ないほど優れた環境です。VBAのF5キーは「実行」を担っていました。その裏側でPythonがどう動くかを見られます。その「見える化」を強力にサポートしてくれます。この環境を使いこなせば効率は上がります。作業効率は飛躍的に向上するはずです。
Jupyterで叶うVBA流Python
先ほどのコードの続きについてです。Jupyter Notebookのセルを使いました。アクティブなシートを取得して名前を変えます。特定のセルに値を書き込むコードを書きました。そしてファイルを保存するという操作です。これらの一連の流れを試してみました。まるでVBEでコードを書いているようです。そのように、すぐ実行することができました。

さらに素晴らしい点があります。コードを書いて実行し、結果を見ます。そして次のコードを書くというサイクルです。この流れがVBAの感覚と似ていました。ステップ実行やイミディエイトと同じです。これには本当に感動を覚えました。今までは大きな壁を感じていました。どこで動かせば良いのかという悩みです。しかし、解決策が見つかりました。VBAでの試行錯誤をそのまま持ち込めます。そう確信することができました。
作成されたファイルを開いてみました。確かにシート名が変わっていました。A1セルには指定した文字がありました。「Hello, Python!」と書かれています。この「動いた!」という達成感です。VBAを始めた時と同じくらい嬉しかったです。環境構築の難しさに尻込みしていました。そんな私にとっての光明となりました。
VBAの経験がPython学習を加速
今回のExcel操作の例を通した感想です。VBAで身につけた知識についてです。それがPythonを学ぶ武器になると実感しました。ループ処理や条件分岐の考え方です。変数の使い方も含めて共通しています。基本的な考え方は同じだと言えます。異なるのは「書き方」という部分だけです。表面的な違いだと感じることができました。
「自分にはPythonは無理だ」と思っていました。そう決めつけていた過去の自分に教えたいです。もっと早くこの環境を知りたかったです。Jupyter NotebookやAnacondaの存在です。少し後悔していますが、遅くはありません。VBAで自動化してきた作業があります。それをPythonでもっとスマートにします。さらに広範囲を自動化できるはずです。そのような可能性が見えてきました。
例えばWebサイトからの情報取得です。それをExcelにまとめる作業などです。複数のファイルからデータを抽出します。VBAでは少し複雑だった処理です。Pythonならもっと簡潔に書けるでしょう。事務職としてのスキルアップです。日々の業務を効率化するための武器です。学習へのモチベーションがぐんと上がりました。この一歩を踏み出せたことに満足しています。
関連リンクとチェックリスト
無料プレゼント
Excel業務を自動化する前に確認するチェックリスト(PDF)
自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。
無料でチェックリストを受け取る¥980 ミニキット
コピペで動かせる3スクリプト+自動化チェックリスト
最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。
ミニキットを見る(¥980)著者はこうして解決の糸口を見つけた
著者も同じ境遇から始まりました。独学でここまで自動化した道のりを参考にしてみてください。
学習サービスとアンケート
VBA・Pythonをもっと本格的に学ぶなら
VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

