Pyhtonを始めたいVBAユーザーの為のPython入門 VBAユーザーの為のPYTHON

VBAユーザーの為のPython入門

Pyhtonを始めたいVBAユーザーの為のPython入門
Pyhtonを始めたいVBAユーザーの為のPython入門

VBAユーザーの為のPYTHON 01回

挑戦する度に放置していたPython

Python という言葉は聞いたことがあっても、 Python って難しそう、 毒蛇を連想する名前も恐ろしいわよね などと 不安を感じている方もいるかもしれません。
そこで今回は コピペでできるパイソンということで 難しいプログラム言語の知識はなくても、さらにプログラムの実行環境 さえなくても、 Pythonは学ぶことができ、Python を体験できるということを知って欲しくて この動画を作成しました。
何度か挑戦しては放置していたPython、VBAユーザーにはそのような方が多いと思います。
きっと、パソコンをPythonが使える環境にするための環境構築に、疲れてしまったのではないでしょうか?
今回は、環境構築に手間がかからないWebサービス、Google Colaboratory(コラボ レイトリー)を利用します。
Google Colabは Google が提供する クラウド上のオンライン プログラミング環境です。
Google Colab コラボの利用により 初心者の多くが 挫折してしまう環境構築の手間を省くことができます。
Googleアカウントがあれば、プログラミング学習をすぐに開始することができます。

Google Colabにはセッションという概念があります。
これは Google Colab というクラウドサービスに一時的に場所と設備を借りている状態と思ってください。
そのユーザーが利用できる状態をセッションと言い、それは最大12時間です。 セッションが有効な間はアップロードしたファイルは Google Colab 上に保存され、 Colab上から、そのファイルにアクセスしたり、コードを実行したりできます。 ただし連続12時間以上起動させたり、一定の時間操作が行われていない場合には セッションは自動で終了します。 それにより アップロードしたファイルや実行結果は リセットされます。
(サンプルファイルは、こちらから VBAユーザーの為のPYTHON01回サンプルデータ

Colab(正式名称「Colaboratory」)で始めるPython

【なぜPythonを学ぶのか】
Microsoftが、プログラミング言語の「Python(パイソン)」を Excelで利用できる機能「Python in Excel」を2023年8月末に発表したことは記憶に新しいです。
「Python in Excel」をシート上で使うために、Pythonの実行環境をパソコンに用意する必要はありません。 新関数「PY関数」を利用して、クラウド上で処理されるということです。なんともうれしいではありませんか。
しかし、情報だけが先行し、Youtubeなどの動画で紹介されているものの、2024年1月18日現在、一般ユーザーはまだ使えません。
私自身は、Microsoft 365 Insiderに登録してあるのですが、新機能を一向に使える状況にはなっていません。
しかし、VBA以外でプログラムを学習するならPythonだと思っていたのですでに学習を始めていました。
このシリーズ動画は、VBA学習者にとってのPythonへの入り口となればと思い制作することにしました。

https://youtu.be/HFps4OfkJ-A

Python文法の基礎

数値と文字列の書きかた
処理の中で数値を使う際は、目的の数値を半角で記述します。 文字列の場合は「'」(シングルクォーテーション)または「"」(ダブルクォーテーション)のいずれかで囲み ます。

動画では Python を使うことによって 「スクレイピングという作業」が驚くほど少ないコードで実現できるということを見ていただきたかったわけです。
そして今回の目的はもう一つあって、 コラボレートが利用できるようにするということです。 これは 次回の以降の学習のためにです。

インデントが重要
他のプログラム言語においてインデントは、コードを見やすくするための字下げにすぎません。
Pythonの場合に、インデントは文法です。インデントを忘れたり、間違えるとコードが成立しません。

Pyhtonを始めたいVBAユーザーの為のPython入門9

以下のコードではFor文を利用しています。range(1,10)の間で変数iを加算するコードです。


Pyhtonを始めたいVBAユーザーの為のPython入門-1
# goukeiは合計の意味の変数です。i も変数です。
# for文をrangeオブジェクトと組み合わせて使用します。
goukei = 0
for i in range(1, 10):
    goukei = goukei + i
print("合計は" + str(goukei) + "です")

実行すると、コードの結果が55ではなく45になってしまいました。それはなぜでしょう?
コードの結果が55ではなく45になる理由は、range関数の使い方にあります。
Pythonのrange()関数は、ExcelVBAにおけるRangeとは意味合いが違います。
range()関数と呼ばれていますが、指定した開始数から終了数までの連続した数値を要素として持つ range 型のオブジェクトを作成します。
Pythonでのrange(start, stop)関数は、startからstop - 1までの数値を生成 します。
つまり、stopの値は範囲に含まれません。ここは
for i in range(1,11): とする必要がありました。

Pyhtonを始めたいVBAユーザーの為のPython入門-3

range(1, 11)に訂正すると、1から10までの合計が正しく計算されます。

Pyhtonを始めたいVBAユーザーの為のPython入門1-4

Pythonではインデントが文法の役割の一部

次にインデントを無くした場合 です。実行するとエラーとなります。

Pyhtonを始めたいVBAユーザーの為のPython入門1-

1段階のインデントは半角スペース4つ、2段階のインデントは半角スペース8つが推奨されています。正しくインデントを行わないとエラー になりますよ。

Pyhton基本事項1

Python変数のルール

1. 上記サンプルでは、変数 を利用しています。
変数とは プログラミングにおいて 何度も使う情報を入れておく 名前付きの箱のようなもののことを言います。
箱の中には何でも入れることができ 必要な時に確認 参照できます。
この箱 つまり 変数の中身はいつでも変更できますですから、中身が変わる可能性があるから変数と呼ばれるわけです。
goukei = 0 goukeiは変数です。

2. Pythonの変数名はアルファベットの文字 大文字 小文字 どちらもか 数字 アンダースコアを使用できます。
数字から始まる変数名は作ることができません。
また Python の予約語は変数として使用できません。
Python では変数に値を代入するには等号=を使用します。これを代入演算子と言います。
どんな予約語があるのかは、keyword.kwlistにPythonにおけるキーワード(予約語)の一覧がリストとして格納されています。
次のコードで見ることができます。
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Pyhton基本事項2

動画で使用したコードYahooニュースのスクレイピングコード

Python専用のソースプログラムを作成するためには、テキストエディタが必要です。

UTF8として記述することができればいいので、メモ帳や通常のエディタでもかまわないと思います。
Colabにペーストして使うのでしたら、textファイルとして保存してもいいと思います。


from bs4 import BeautifulSoup
import requests
import re

url = 'https://www.yahoo.co.jp/'
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

elems = soup.find_all(href=re.compile("news.yahoo.co.jp/pickup"))

for elem in elems:
    print(elem.text)  # または elem.string を使用
    print(elem.attrs['href'])