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-vba.work

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

STEPNの画面上の情報をOCRで取得する方法(簡易版)

・Reflector4などでiPhoneの画面をPC上に表示させる
・Githubの https://github.com/skipiano/STEPN からpythonコード取得
・実行して足りないモジュールはpipでインストール
Tesseract OCR をWindowsにインストールする必要あり。PATHも通す必要あるよ
・自分の画面に合わせてim.crop()の引数を調整

ExcelVBAで行って時間後に消えるダイアログ

宣言はこちら

Private Declare PtrSafe Function CustomTimeOffMsgBox Lib "user32" Alias "MessageBoxTimeoutA" ( _
            ByVal xHwnd As LongPtr, _
            ByVal xText As String, _
            ByVal xCaption As String, _
            ByVal xMsgBoxStyle As VbMsgBoxStyle, _
            ByVal xwlange As Long, _
            ByVal xTimeOut As Long) _
    As Long

使い方

    If CustomTimeOffMsgBox(0, "キャンセルボタンを押さないと5秒後に処理が動作します。", "カウントダウン", vbInformation + vbOKCancel, 0, 5000) = vbCancel Then
        'Cancel
    Else
        'ここに処理書く
    End If

CoinGekoからExcelで仮想通貨の現在値取得

  • 取得したい通貨のCoinGekoページを表示してapi idを取得 ここではBNB

  • vs_currencyの欄に何ベースの価格が欲しいか指定。円ならjpy、ドルならusd
  • idsに取得したい通貨のapi idをカンマ区切りで入力 ここではBNB bGST GMT
  • Executeボタンをクリック

  • Responsesにそれっぽいデータが受信できてればOK

  • Request URLをコピーする
  • Excelを開き、データ>webから を選択。コピーしたURLを貼り付ける

  • 「テーブルへの変換」をクリック

  • これはそのままOK

  • columnの横の小さいボタンをクリックして出力したい列だけ選択。current_priceが現在値。OKする

  • 「閉じて読み込む」をクリック

  • 取得できました。