#
by th1252
| 2023-05-31 15:27
| TH69の亜米利株の情報
|
Trackback
|
Comments(0)
TH69です。 「TH69の亜米利株」Ver.12.1dをベクターに公開申請しました! ![]() Ver.12.0でPython実行ファイルによる株価・配当利回りなどの更新機能を実装しました。 ![]() 使い方については同梱の「Python実行ファイルの使用方法.txt」をご覧ください。なお、旧バージョン(Ver.11.0d以前)の「TH69の亜米利株」ExcelファイルでPythonは動作いたしませんので、必ず新バージョンのファイルにデータ移行後にご利用願います。 「TH69の亜米利株Ver.12.0」のバージョンアップに伴い、グラフファイル(グラフ.xlsm)もVer.1.8にバージョンアップを行いました。私の新PC(Windows11,15インチノート)の解像度(1920×1080)に合わせたシートの見え方の調整です。ご利用後に以前の見え方の方がよかったというユーザー様が居られましたら、バージョンアップ前の「グラフ.xlsm」を新バージョンのファイルに差し替え(もしくは上書き)してのご利用をお願いいたします。 では、いい投資を! #
by th1252
| 2023-05-28 17:03
| TH69の亜米利株の情報
|
Trackback
|
Comments(0)
TH69です。 Pythonによる株価取得ファイルですが、エラーでたまに止まってしまうことがあるので調べてみました。 するとエラーは株価や配当利回り取得時に発生しているのではなく、一番最初に行っているドル円レートの為替相場取得時であることが分かりました。ドル円レートはPythonのライブラリの一つである「pandas-datareader」で取得していましたが、それを従来のVBAによるWEBスクレイピングと同じサイトでやってみることにしました。 色々調べてみたところ、PythonでのWEBスクレイピングはメッチャ簡単であることが分かりました。思い通りに取得できないサイトもありますが、私が利用しているYahooFinance(日本)では簡単にドル円レートを取得することができました。 ちなみに今回作成したのは下のスクリプトです。 import requests from bs4 import BeautifulSoup url = "https://finance.yahoo.co.jp/quote/USDJPY=X" res = requests.get(url) soup = BeautifulSoup(res.text, "html.parser") elems = soup.select('._1c9rs8VH > span:nth-child(1)') price = elems[0].contents[0] print(price) 「BeautifulSoup4」というライブラリのインストールは必須です。 「url」にWEBスクレイピングしたいサイトのURLを指定します。 「elems = soup.select」の右のカッコに取得したい箇所の「CSSセレクター」の値を入力します。 これだけで「Price」にその値(今回はドル円レート)が返ってきます。って、めちゃくちゃ簡単やん! その「CSSセレクター」の値の取得方法を説明します。 1)WEBスクレイピングしたいサイトをブラウザで開きます(私の場合はFirefoxです) ![]() 2)取得したい箇所のテキストをマウスで選択(今回は「134.7700」)し、右クリックメニューから「調査」をクリックします。 ![]() 3)すると何か解析の画面が出るので、ハイライトされた箇所の右クリックメニューから「コピー>CSSセレクター」をクリックします。 ![]() 4)これで「CSSセレクター」が取得できるはずです。 (今回は「._1c9rs8VH > span:nth-child(1)」が取得できました) 5)ほかのブラウザでもほぼ同じやり方で取得できます。「Microsoft Edge」では「開発者ツールで調査する」をクリックします。 ![]() 6)同様に開いた解析ページのハイライトされた部分の右クリックメニューから「コピー>selectorをコピー」をクリックします。 ![]() 7)これで「selector」が取得できるはずです。 (今回は「#contents > div > div._1ziqiIUl > div:nth-child(5) > div:nth-child(1) > div._1-HjOuwn > div._103wsUl4 > div._2AQd5-ZG > p._1c9rs8VH > span」が取得できました) 8)使用するブラウザによって取得できる値は違うこともあるようですが、どちらでも問題なく「134.7700」が取得できました。 今回の改良でさらに公開時期が近付いたかも…。従来と為替レートも同じになったので、ほぼ差異がなくなりました。 では、よい投資を! #
by th1252
| 2023-05-06 16:19
| Python
|
Trackback
|
Comments(0)
TH69です。 プログラミング言語のPythonによる株価更新ファイルがかなり出来上がってきて、ほぼ思い通りの動作が実現できているため、そろそろ公開したいと考えています。 それで、まだちょっと気が早いんですけどYoutubeに【「TH69の亜米利株」Python実行(exe)ファイルの使い方】をアップしましたので紹介します。 最後は色々いらんことしゃべってますが、ご容赦願います。 「Python実行ファイルの使用方法」について 「TH69の亜米利株」Ver.12.0でPython実行ファイルによる株価などの更新を実装しました。 現状エクセルVBAのWebスクレイピングで株価・配当利回り・ドル円レートなどを取得しているため、いつそれらが行えなくなったとしても不思議ではありません。そういう非常時の備えとしての役割としてだけでなく、通常時の作業効率化と時間短縮のアイテムとしても利用価値はあると思います。 ただ、Pythonによるプログラミングについては超初心者なので、コーディングミスによる動作不良など多々あるものと思います。その時は優しく連絡して下さるようお願いいたします。 基本的な使い方としては、 (A)直接「Python株価更新.exe」ファイルを起動する方法 (B)各シートにある「Py」ボタンをクリックする の2種類となります。 まず(A)「Python株価更新.exe」ファイルを起動する方法について説明します。 (1) 「Python株価更新.exe」ファイルは必ず「TH69の亜米利株.xlsm」ファイルと同じディレクトリでご利用願います。そうすることで「TH69の亜米利株.xlsm」ファイルの選択が楽になります。 (2) 「Python株価更新.exe」ファイルをダブルクリックして起動します。この時、何かアプリのようなものが開いたりすることはありません。 (3) しばらくすると開きたい「TH69の亜米利株.xlsm」ファイルが選択できるファイルダイアログが開きますので、そこに表示されたファイルを選択し「OK」ボタンを押します。 (推奨はしませんが、ファイルダイアログで別の場所にあるファイルの選択も可能です) (4) 「OK」ボタンを押すと自動でExcelが起動し選択した「TH69の亜米利株.xlsm」ファイルが開き、全てのシートの株価・配当利回りなどを更新します。 (5) 更新作業が終了すると「終了しました」というダイアログが表示されますので、「OK」ボタンを押してダイアログを閉じます。 (課題なのですが、このダイアログがアクティブにならないため「enter」で閉じられません) (6) 各シートを確認して更新が問題なく行われていれば保存して終了します。 (問題がある場合や更新が途中で止まってしまう場合はご連絡お願いいたします。) 次に(B)各シートにある「Py」ボタンをクリックする方法について説明します。 (1) 「TH69の亜米利株.xlsm」ファイルを開きます。 (2) 更新したいシートを開き、シート上部にある「Py」ボタンを押します。 (3) 自動で「Python株価更新.exe」ファイルが開き株価更新などを行います。 (4) 更新作業が終了すると「終了しました」というダイアログが表示されますので、「OK」ボタンを押してダイアログを閉じます。 (5) 必要ならば他のシートも同様に更新します。 ※なお、「ティッカー一覧」シートにある「Pythonで全更新」ボタンをクリックした場合は、株価更新を行える全てのシートの更新を行います。 では、よい投資を! #
by th1252
| 2023-05-01 15:25
| TH69の亜米利株の情報
|
Trackback
|
Comments(0)
TH69です。 Pythonで、そのスクリプトが実行されている場所(自身のパス)を取得したい時があります。私は「TH69の亜米利株」でexe化したPythonファイルを実行したときに自身のパスを取得し、ファイルダイアログでその場所にあるExcelファイルを選択できるようにしました。 その時に自身のパスを「__file__」で取得するコードだと、VSCode上でスクリプトとして実行している時はいいのですが、いざexe化して実行してみると全く別の場所のファイルダイアログが表示されて使い物になりませんでした。 その状況を再現するために下のスクリプトを作って試してみました。 test_Path.py import os import xlwings as xw myDir = os.path.dirname(__file__) print(myDir) wb = xw.Book() ws = wb.sheets.active ws.range('A1').value = myDir これを同じ場所に置いて(C:\Users\th696\Documents\Python)実行してみました。 ![]() 「test_Path.py]をVSCodeで実行 ![]() 「test_Path.exe」ファイルを実行 ![]() 「test_Path.py]をVSCodeで実行した場合は「c:\Users\th696\Documents\Python」と正しいパスが取得できていますが、「test_Path.exe」ファイルを実行した場合は「C:\Users\th696\AppData\Local\Temp\_MEI185642」と全く別の場所が取得されました。 取得したのはTempフォルダなので、多分ですがexeファイルは圧縮されているのでTempフォルダで一旦解凍してから実行しているため、その解凍された場所のパスが取得されたものと思われます。 それで色々検索して見つけたのが下のコードです。 このコードを使用するとexe化したスクリプトも自身のパスを取得することができるようになります。 if getattr(sys, 'frozen', False): myDir = os.path.dirname(sys.executable) else: myDir = os.path.dirname(__file__) このコードを使用して上記「test_Path.py」を改良して「test_Path2.py」を作ってみました。 test_Path2.py import os import sys import xlwings as xw if getattr(sys, 'frozen', False): myDir = os.path.dirname(sys.executable) else: myDir = os.path.dirname(__file__) print(myDir) wb = xw.Book() ws = wb.sheets.active ws.range('A1').value = myDir これを同じ場所に置いて(C:\Users\th696\Documents\Python)実行してみました。 ![]() 「test_Path2.py]をVSCodeで実行 ![]() 「test_Path2.exe」ファイルを実行 ![]() 見事にどちらも同じパスを取得することができました! めでたしめでたし(嬉) 【教訓】 Pythonをexe化したファイルで自身のパスを取得する場合は必ず下記のコードを使用すること。 if getattr(sys, 'frozen', False): myDir = os.path.dirname(sys.executable) else: myDir = os.path.dirname(__file__) では、よいプログラミングを! #
by th1252
| 2023-04-28 20:37
| Python
|
Trackback
|
Comments(0)
|
カテゴリ
メモ帳
以前の記事
2023年 05月 2023年 04月 2023年 02月 2023年 01月 2022年 12月 2022年 11月 2022年 10月 2022年 09月 2022年 08月 2022年 07月 2022年 05月 2022年 04月 2022年 03月 2022年 02月 2022年 01月 2021年 12月 2021年 11月 2021年 10月 2021年 09月 2021年 08月 2021年 07月 2021年 06月 2021年 05月 2021年 04月 2021年 03月 2021年 02月 2021年 01月 2020年 12月 2020年 11月 2020年 10月 2020年 09月 2020年 08月 2020年 07月 2020年 06月 2020年 05月 2020年 04月 2020年 03月 2020年 02月 2020年 01月 2019年 12月 2019年 10月 2019年 09月 2019年 08月 2019年 07月 2019年 06月 2019年 05月 2019年 04月 2019年 03月 2019年 02月 2019年 01月 2018年 12月 2018年 11月 2018年 10月 2018年 09月 2018年 08月 2018年 07月 2018年 06月 2018年 05月 2018年 04月 2018年 03月 2018年 02月 2018年 01月 2017年 12月 最新のコメント
最新のトラックバック
検索
タグ
最新の記事
外部リンク
記事ランキング
|
ファン申請 |
||