Last active
March 23, 2024 09:10
-
-
Save NonAbility/f02b78a77ac54178b4843a4f9ecc5dbc to your computer and use it in GitHub Desktop.
「エリア需給実績グラフ」のワンアクション化VBAのための、基本プロシージャ7つ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Option Explicit | |
Sub Pre() | |
' | |
' URLリストを更新するマクロ | |
' | |
Dim ws2 As Worksheet ' 2_DL_URL_List のワークシート変数宣言 | |
Dim tbl2 As ListObject ' Q_DL_URL_List のリストオブジェクト変数宣言 | |
' クエリー Q_DL_URL_List を変数にセットする | |
Set ws2 = ThisWorkbook.Worksheets("2_DL_URL_List") | |
Set tbl2 = ws2.ListObjects("Q_DL_URL_List") | |
' クエリー Q_DL_URL_List を更新する | |
tbl2.QueryTable.Refresh BackgroundQuery:=False | |
End Sub | |
Sub chgFirstD() | |
' | |
' 日スライサーを強制的に "1日" にするマクロ | |
' | |
ThisWorkbook.SlicerCaches("スライサー_日").VisibleSlicerItemsList = Array("[Q_SUM_Monthly].[日].&[1]") | |
End Sub | |
Sub chgLastYM() | |
' | |
' 年月スライサーの選択値を最新年月に指定するマクロ | |
' | |
Dim ws2 As Worksheet ' 2_DL_URL_List のワークシート変数宣言 | |
Dim ws3 As Worksheet ' 3_PT_YM のワークシート変数宣言 | |
Dim YM As String ' 選択中の R_YM の文字列変数宣言 | |
Dim LastYM As String ' Q_DL_URL_List の中での最新年月の文字列変数宣言 | |
Dim pt3 As PivotTable ' PT_YM のピボットテーブル変数宣言 | |
Set ws2 = ThisWorkbook.Worksheets("2_DL_URL_List") | |
YM = Format(ws2.Range("R_YM"), "yyyy/mm") | |
LastYM = ws2.Range("R_LastYM").Value | |
Set ws3 = ThisWorkbook.Worksheets("3_PT_YM") | |
Set pt3 = ws3.PivotTables("PT_YM") | |
' 既に選択中の年月がURLリストの最新年月と異なるときにだけ、 | |
' ピボットテーブルの年月フィルターに最新年月を指定する | |
If LastYM <> YM Then | |
pt3.PivotFields("年月").CurrentPage = LastYM | |
End If | |
End Sub | |
Sub Ref1() | |
' | |
' 年月スライサー変更か最新日更新ボタンを押したときに、 | |
' 1) CSVを読み込み | |
' 2) 最終時間帯を更新し | |
' 3) 月Data一覧を更新 | |
' するマクロ | |
' | |
Dim ws4 As Worksheet ' 4_Last_UpdateTime のワークシート変数宣言 | |
Dim ws7 As Worksheet ' 7_Chart_Monthly のワークシート変数宣言 | |
Dim tbl2 As ListObject ' Q_DL_URL_List のリストオブジェクト変数宣言 | |
Dim tbl4 As ListObject ' Q_Last_UpdateTime のリストオブジェクト変数宣言 | |
Dim tbl7 As ListObject ' Q_Chart_Data_Monthly のリストオブジェクト変数宣言 | |
Set ws4 = ThisWorkbook.Worksheets("4_Last_UpdateTime") | |
Set ws7 = ThisWorkbook.Worksheets("7_Chart_Monthly") | |
Set tbl4 = ws4.ListObjects("Q_Last_UpdateTime") | |
Set tbl7 = ws7.ListObjects("Q_Chart_Data_Monthly") | |
ThisWorkbook.Connections("クエリ - Q_SUM_Monthly").Refresh | |
tbl4.QueryTable.Refresh BackgroundQuery:=False | |
tbl7.QueryTable.Refresh BackgroundQuery:=False | |
End Sub | |
Sub chgLastD() | |
' | |
' 日スライサーの選択値を最終更新日時の「日」に指定するマクロ | |
' | |
Dim ws4 As Worksheet ' 4_Last_UpdateTime のワークシート変数宣言 | |
Dim LastD As String ' 最終更新時間帯の日にち文字列変数宣言 | |
Set ws4 = ThisWorkbook.Worksheets("4_Last_UpdateTime") | |
LastD = Format(ws4.Range("R_Last_UpdateTime").Value, "d") | |
ThisWorkbook.SlicerCaches("スライサー_日").VisibleSlicerItemsList = Array("[Q_SUM_Monthly].[日].&[" & LastD & "]") | |
End Sub | |
Sub Ref2() | |
' | |
' 年月または日のスライサー変更または最新日更新ボタンを押したときに、 | |
' 1) Chart_Daily を更新し | |
' 2) 日Data一覧を更新 | |
' するマクロ | |
' | |
Dim ws8 As Worksheet ' 8_Chart_Daily のワークシート変数宣言 | |
Dim cht8 As Chart ' Chart_Daily のチャート変数宣言 | |
Dim tbl8 As ListObject ' Q_Chart_Data_Daily のリストオブジェクト変数宣言 | |
Set ws8 = ThisWorkbook.Worksheets("8_Chart_Daily") | |
Set cht8 = ws8.ChartObjects("Chart_Daily").Chart | |
Set tbl8 = ws8.ListObjects("Q_Chart_Data_Daily") | |
cht8.Refresh | |
tbl8.QueryTable.Refresh BackgroundQuery:=False | |
End Sub | |
Sub Save() | |
' | |
' この book を上書き保存するマクロ | |
' | |
ThisWorkbook.Save | |
End Sub | |
Sub ScrOff() | |
' | |
' 画面遷移の抑止 | |
' | |
Application.ScreenUpdating = False | |
End Sub | |
Sub ScrOn() | |
' | |
' 画面遷移抑止の解除 | |
' | |
Application.ScreenUpdating = True | |
End Sub | |
Sub Uptodate() | |
' | |
' 最新日更新ボタンを押したとき実行するマクロ | |
' | |
Call ScrOff | |
Call Pre | |
Call chgLastYM | |
Call Ref1 | |
Call chgLastD | |
Call Ref2 | |
Call ScrOn | |
Call Save | |
End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment