こんにちは、三橋です。
Pythonでできることは沢山ありますが、まず初歩的なエクセル操作、APIにアクセスをしてみたいと思います。
PythonでExcelマクロ実行(VBA)する
PythonではExcelを操作することができます。xlwingsを使用し、自動実行してみたいと思います。
xlwingsとはPythonでExcelを操作することが可能なライブラリです。
まずxlwingsをインポートし使用できるようにします。そしてPythonのプログラムと同じフォルダに「macroTest.xlsm」というExcelがあり、その中に「AddChart」というマクロがあるとします。Pythonのプログラムは以下のようになります。
import xlwings
app = xlwings.App()
wb = app.books.open('./macroTest.xlsm')
pg=wb.macro('AddChart')
pg()
wb.save('./macroTest.xlsm')
wb.close()
app.quit()
以下がグラフを作成するExcelマクロです。
Sub AddChart()
Dim wk As Worksheet
Dim data As Range
Dim paste As Range
Set wk = ThisWorkbook.Worksheets("test")
Set data = wk.Range("A1:M2")
Set paste = wk.Range("A8")
'グラフ作成
With wk.Shapes.AddChart.Chart
.ChartType = xlColumnClustered
.SetSourceData data
.HasTitle = True
.ChartTitle.Text = "売上"
.Parent.Top = paste.Top
.Parent.Left = paste.Left
End With
End Sub
Pythonを実行します。
python3 macroTest.py
以下のようにグラフが作成されたので成功しました。
はい、ここまでPythonでExcel VBAを操作してみました。なぜこんな事する必要があるの?という疑問が出てきた人もいるかも知れません。
VBAは便利ですが、Excelの中にコード書くことになるので、ソースコード管理ができません。
複数人でコードを書くことも難しいです。できるだけPythonで書くことで管理しやすくなります。
PythonでAPIを呼び出してみる
次はPythonでAPIを呼び出してみます。
話題のChatGPTを呼び出してみることにします。
ChatGPTを使用するにはopenaiをインストールします。
ChatGPTからAPIキーを取得します。
以下のページにあるCreate new secret keyをクリックするとAPIキーが取得できます。
https://platform.openai.com/account/api-keys
api_keyに取得したAPIキーを入力し、promptに文章(質問など)を入力します。
import os
import openai
openai.api_key = 'xxxxxxxx'
response = openai.Completion.create(
model="text-davinci-003",
prompt="明日の天気は",
temperature=0.9,
max_tokens=150,
top_p=1,
frequency_penalty=0,
presence_penalty=0.6,
stop=None,
)
response = response.choices[0].text
print(response)
Pythonを実行してみます。下記の内容が返ってきました。こちらも成功です。
晴れです
明日はいい天気となりそうですね!お出かけ楽しみに!
株式会社クオリアシステムズでは一緒に働く仲間を募集しています