kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

「SQLログ取得.xls」のつづき。・・・メニューハンドリング

postgresのlog編集。のつづき。・・・
仕事で使っている。使いづらいところを修正した。

  1. いちいちマクロー>マクロー>XXXは使いづらい。ので、メニューにした。
  2. ”set DateStyle to 'ISO'”みたいなSQLを読み飛ばしできるようにした。

 ■マクロ画面のMicredoft Excel ObjectsのThisWorkbook用vba

Option Explicit
'--------------------------------------------------
Private Sub Workbook_Open()
    メニューの登録     '--- 標準モジュールのプロシージャ
End Sub
'--------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    メニューの削除     '--- 標準モジュールのプロシージャ
End Sub

 ■メニューハンドリング用vbaなど

Option Explicit

Sub メニューの登録()
    Dim Menu5 As Object
    Dim Menu4 As Object
    Dim Menu3 As Object
    Dim Menu2 As Object
    Dim Menu1 As Object
    Dim S1_Menu1 As Object
    
    'まずメニューを追加します.---
    Set Menu2 = CommandBars("Worksheet Menu bar").Controls.Add _
    (Type:=msoControlButton, Temporary:=False)
    Menu2.BeginGroup = True
    Menu2.Caption = "マシン日時取得" ' --- (1)
    Menu2.OnAction = "マシン日時取得"
    Menu2.Enabled = True
    Menu2.Visible = True
    Menu2.Style = msoButtonCaption
        
    Menu2.BeginGroup = True
    Set Menu4 = CommandBars("Worksheet Menu bar").Controls.Add _
    (Type:=msoControlButton, Temporary:=False)
    Menu4.Caption = "SQLログ取得" ' --- (2)
    Menu4.OnAction = "SQLログ取得"
    Menu4.Enabled = True
    Menu4.Visible = True
    Menu4.Style = msoButtonCaption
        
    Menu2.BeginGroup = True
    Set Menu5 = CommandBars("Worksheet Menu bar").Controls.Add _
    (Type:=msoControlButton, Temporary:=False)
    Menu5.Caption = "SQL整形" ' --- (3)
    Menu5.OnAction = "SQL整形"
    Menu5.Enabled = True
    Menu5.Visible = True
    Menu5.Style = msoButtonCaption
        
    Menu2.BeginGroup = True
    Set Menu3 = CommandBars("Worksheet Menu bar").Controls.Add _
    (Type:=msoControlButton, Temporary:=False)
    Menu3.Caption = "フォーマット" ' --- (4)
    Menu3.OnAction = "フォーマット"
    Menu3.Enabled = True
    Menu3.Visible = True
    Menu3.Style = msoButtonCaption

    Menu2.BeginGroup = True
    Set Menu1 = CommandBars("Worksheet Menu bar").Controls.Add _
    (Type:=msoControlButton, Temporary:=False)
    Menu1.Caption = "【SQLConvertの起動】" ' --- (5)
    Menu1.OnAction = "SQLConvert_start"
    Menu1.Enabled = True
    Menu1.Visible = True
    Menu1.Style = msoButtonCaption

    'SQLConvertを起動する
    Call SQLConvert_start

End Sub
'--------------------------------------------------
Sub メニューの削除()
    On Error Resume Next '--- エラーが出たらその行は飛ばす。
    CommandBars("Worksheet Menu bar").Controls("マシン日時取得").Delete ' --- (1)
    CommandBars("Worksheet Menu bar").Controls("SQLログ取得").Delete ' --- (2)
    CommandBars("Worksheet Menu bar").Controls("SQL整形").Delete ' --- (3)
    CommandBars("Worksheet Menu bar").Controls("フォーマット").Delete ' --- (4)
    CommandBars("Worksheet Menu bar").Controls("【SQLConvertの起動】").Delete ' --- (5)
    
    'SQLConvertを終了する
    Call SQLConvert_end

End Sub

Sub フォーマット()
    Dim rowIdx
    Dim colIdx
    
    rowIdx = ActiveCell.Row
    colIdx = ActiveCell.Column
    ActiveWindow.Zoom = 75
    Range("B2").Select
    Columns("A:A").ColumnWidth = 6#
    Columns("B:I").Select
    Selection.ColumnWidth = 18.5
    Cells(rowIdx, 1).Activate    ' 次の項目をアクティブにする
    Cells(rowIdx, colIdx).Activate    ' 次の項目をアクティブにする
End Sub

使い方やツールのダウンロードはhttp://d.hatena.ne.jp/kazpgm/20100130/1264876192

2010/02/04 20:30-24:30
2010/02/07 21:30-21:40 SQLConvert.exeを常駐させた(【SQLConvertの起動】を追加した)