YouTubeでお話していたファイルはこちらです。
補足|VBAの解説
記載しているVBAは以下のとおりです。
ご興味あればご覧ください。
コード詳細
Option Explicit
Sub みずほTTMデータ取得()
Dim url As String
Dim wbThis As Workbook
Dim wbCsv As Workbook
Dim wsSet As Worksheet
Dim wsRaw As Worksheet
Set wbThis = ThisWorkbook
Set wsSet = wbThis.Worksheets("設定")
Set wsRaw = wbThis.Worksheets("TTM_raw")
url = Trim(wsSet.Range("B2").Value)
If url = "" Then
MsgBox "設定シートのB2に、みずほCSVのURLを入力してください。", vbExclamation
Exit Sub
End If
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo ErrHandler
'既存データをクリア
wsRaw.Cells.Clear
'CSVをURLから別ブックとして開く
Set wbCsv = Workbooks.Open(Filename:=url)
'CSV全体をコピーして、TTM_rawに貼り付け
wbCsv.Worksheets(1).UsedRange.Copy Destination:=wsRaw.Range("A1")
'CSVブックを閉じる
wbCsv.Close SaveChanges:=False
Set wbCsv = Nothing
wsRaw.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "みずほTTMデータを取得しました。", vbInformation
Exit Sub
ErrHandler:
If Not wbCsv Is Nothing Then
wbCsv.Close SaveChanges:=False
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "取得に失敗しました。" & vbCrLf & _
"URL、ネット接続、またはCSV仕様を確認してください。" & vbCrLf & _
Err.Description, vbExclamation
End Sub解説
このVBAでは、設定シートに入力したURLを読み込み、みずほヒストリカルデータのCSVをExcelで開いて、「TTM_raw」シートに貼り付けています。
まず、設定シートのB2セルからCSVのURLを取得します。
url = Trim(wsSet.Range("B2").Value)Trim は、URLの前後に余計なスペースが入っていた場合に、それを取り除くための処理です。
URLが空欄の場合は、メッセージを表示して処理を止めます。
If url = "" Then
MsgBox "設定シートのB2に、みずほCSVのURLを入力してください。", vbExclamation
Exit Sub
End If次に、マクロ実行中の画面のちらつきや確認メッセージを抑えるため、画面更新と警告表示を一時的に止めています。
Application.ScreenUpdating = False
Application.DisplayAlerts = False貼り付け先である「TTM_raw」シートは、毎回いったんクリアします。
wsRaw.Cells.Clearそのうえで、指定したURLのCSVファイルをExcelで開きます。
Set wbCsv = Workbooks.Open(Filename:=url)開いたCSVの中身をすべてコピーし、「TTM_raw」シートのA1セルから貼り付けます。
wbCsv.Worksheets(1).UsedRange.Copy Destination:=wsRaw.Range("A1")貼り付けが終わったら、開いていたCSVファイルを保存せずに閉じます。
wbCsv.Close SaveChanges:=False
Set wbCsv = Nothing最後に、列幅を整えたうえで、最初に止めていた画面更新と警告表示を元に戻します。
wsRaw.Columns.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = Trueまた、途中でエラーが出た場合に備えて、エラー処理も入れています。
On Error GoTo ErrHandlerURLの誤り、ネット接続の問題、シート名の違いなどで処理に失敗した場合でも、開きっぱなしのCSVファイルを閉じ、Excelの設定を元に戻すようにしています。
このVBAで行っているのは、あくまで「URLを読む」「CSVを開く」「貼り付ける」「閉じる」という処理までです。
USDだけを抜き出す、日付に応じてレートを参照する、といった加工は、Excel関数側で行う想定にしています。
Excel関連記事
-
Excel(マクロ・VBA)
Excel×VBAで自動化:freee・マネーフォワード取込用CSVを作成する方法
-
Excel(マクロ・VBA)
『他者が作ったExcel』の読み解き方
-
Excel(マクロ・VBA)
そのExcel、『楽』にしませんか?
-
Excel(マクロ・VBA)
誤操作を防ぐトリガー設計|特定キーワードで「シート初期化」を実行するVBA
-
Excel(マクロ・VBA)
Excel操作が一瞬に!シンプルVBAで作るショートカット3選
-
Excel(マクロ・VBA)
『ちょっとした動作』もExcelマクロで自動化しよう
-
Excel(マクロ・VBA)
「Excelマクロ・VBA」を触ったことがない人へ
-
Excel(マクロ・VBA)
【Excel VBA】選択範囲にかかる図形を一括削除する方法
-
Excel(マクロ・VBA)
AI時代にVBAを学ぶ意味とは?