Yahooから取得は裏技っぽい状況なのかな。
なるべく避けたほうがよさそう
batファイルやコマンドラインでWindowsをスリープにする
PsShutdownをダウンロードして使うのが一番。
docs.microsoft.com
psshutdown.exe -d -t 0 -accepteula
windowsでpythonによる株価取得環境構築
・コマンドプロンプトで"python"と入力すると
インストールされてない場合、MicrosoftStoreが開くのでインストールする。
・pandas-datareaderをインストール
python -m pip install pandas-datareader
環境構築がお手軽になってるなぁ
Pythonで時系列データ取得(NASDAQ)
ライブラリインストール
py -m pip install pandas-datareader
nas.py
# ================================================= # ライブラリ # ================================================= import pandas_datareader.data as web # ================================================= # メイン # ================================================= # 株価情報取得(NASDAQ指数) stock_price = web.DataReader("^IXIC","yahoo","2000/1/1","2022/7/7") # PandasデータフレームをCSVで出力 stock_price.to_csv("stock_price.csv")
ネタ元
VBAでCSVファイルをシートへ読み込む
Option Explicit Sub sample() '読み込むCSVファイル Const CSV_FILE As String = "C:\Users\user\Desktop\sample.csv" 'CSVファイルを読み込むシート名 Const CSV_SHEET_NAME As String = "csv" Dim sheet As Worksheet Dim csvSheet As Worksheet '既にシート「csv」が存在する場合は削除 For Each sheet In ThisWorkbook.Worksheets If sheet.Name = CSV_SHEET_NAME Then '確認メッセージを非表示 Application.DisplayAlerts = False 'シート削除 Worksheets(CSV_SHEET_NAME).Delete '確認メッセージを表示 Application.DisplayAlerts = True End If Next 'シート「csv」を新規作成 Set csvSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count)) csvSheet.Name = CSV_SHEET_NAME '「QueryTableオブジェクト(=クエリと接続)」を作成 With csvSheet.QueryTables.Add(Connection:="TEXT;" + CSV_FILE, _ Destination:=Range("B2")) '区切り文字に「カンマ区切り」を指定 .TextFileCommaDelimiter = True '文字コードに「UTF-8」を指定 .TextFilePlatform = 65001 '読み込み開始行を指定 .TextFileStartRow = 1 '読み込むファイルの1~3列目の形式に「文字列」を指定 .TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat) '読み込み実行 .Refresh BackgroundQuery:=False '作成された「QueryTableオブジェクト(=クエリと接続)」を削除 .Delete End With End Sub
ネタ元
Excelのクエリ接続 更新の完了待ち方法
Webクエリの外部データ範囲プロパティには、「バックグラウンド更新を有効にする」などのチェックボックスがあります。このチェックボックスをオフにして、目的の効果を実現します。
VBAからPowerShell実行
sPS1Path = "ファイル.ps1" Call ExecPowerShell(sPS1Path) ' PowerShellの実行(Execコマンド使用バージョン) Private Function ExecPowerShell(cmdStr As String) As String ' WshShellオブジェクト Dim oExec As Object ' Execコマンドで実行する ' -NoLogo 著作権の見出しを出さない ' -ExecutionPolicy RemoteSigned 実行権限を設定 ' -Command コマンド引数(これ以降にPowerShellのコマンドレット構文を記載) Set oExec = CreateObject("Wscript.shell").Exec("powershell -ExecutionPolicy Unrestricted -File " + cmdStr) ' ジョブが実行中(0)の間は、スリープしながら完了(1)まで待つ Do While oExec.Status = 0 ' 100ミリ秒 Sleep 100 Loop ' 標準出力取得 ExecPowerShell = oExec.StdOut.ReadAll End Function
ExcelVBA 確認無しで上書き保存
'警告メッセージを表示しない Application.DisplayAlerts = False ActiveWorkbook.Save '警告メッセージを表示 Application.DisplayAlerts = True
PHPでURL指定で直接サーバーに画像等をダウンロードする方法
$data = file_get_contents($value); file_put_contents('./download/'.$filename,$data);