2014年3月1日土曜日

【備忘録】Excel VBA小技集

以下、自分の備忘録&外出先での確認用に集めたものです。気が向いたら更新します。

<<VBA実行時の更新画面表示 or 非表示>>
Application.ScreenUpdating = False '更新を表示しない
Application.ScreenUpdating = True '更新を表示する

<<アラートを無視する or しない>>
Application.DisplayAlerts = False 'アラートを無視する
Application.DisplayAlerts = True 'アラートを無視しない

<<最終行を取得する>>
Dim MaxRow As Long
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row


<<最終列を取得する>>Dim MaxCol As Long
MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column

<<配列>>
Dim xxx() As String
ReDim xxx(number)

<<集約>>
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row '先頭行から最終行まで
    For j = Cells(Rows.Count, 1).End(xlUp).Row To i + 1 Step -1 '最終行から対象の行まで
        If (Cells(i, 1).Value = Cells(j, 1).Value) Then '同じ値かどうかを確認
                    ActiveSheet.Rows(j).Delete '下の方の行を削除
            End If
    Next j
Next i

<<整列>>
Worksheets(1).Range(Cells(2, 1), Cells(MaxRow, MaxColumn)).Sort Key1:=Worksheets(1).Cells(1, 1), order1:=xlAscending

<<HTMLの情報を取得する為の主なメソッド・プロパティ>>
'GetAttribute("alt")         代替テキストを取得する場合に使用
'GetAttribute("checked")       チェックボックスやラジオボタンの選択状況を取得
'GetAttribute("href")        リンク先のURL等を取得する場合
'GetAttribute("id")         要素を識別するために固有の ID名を取得する場合
'GetAttribute("name")        要素に付けられたname属性を取得する場合
'GetAttribute("selected")      オプションボタン等の選択状況を取得する場合
'GetAttribute("selectedIndex")    どのオプションボタン等が選択されているかを取得する場合
'GetAttribute("src")         画像ファイル等の保存先の URI を取得する場合
'GetAttribute("title")        要素内に記入されている title 属性を取得する場合
'GetAttribute("type")        要素に付けられたtype属性を取得する場合
'GetAttribute("value")        その要素に記入されている値を取得する場合
'GetElementById("ID名")       要素の ID 属性を検索キーとして使用して HtmlElement を取得する場合
'GetElementsByName("属性名")     対応する名前を指定して要素のコレクションを取得
'GetElementsByTagName("タグ名")   指定した HTML タグを持つ要素のコレクションを取得する場合
'InnerHtml              HTML マークアップを取得または設定する場合
'InnerText              テキストを取得または設定する場合
'OuterHtml              現在の要素の HTML コードを取得または設定する場合
'OuterText              現在の要素のテキストを取得または設定する場合

<<HTMLの情報を設定する為の主なメソッド・プロパティ>>
'InnerHtml              HTML マークアップを取得または設定する場合
'InnerText              テキストを取得または設定する場合
'InvokeMember("Click")        ボタン・リンク等をクリックする場合
'InvokeMember("focus")        フォーカスを設定したい場合(画面の見える位置までスクロール)
'InvokeMember("onChange")      Change イベントを発生させたい場合
'InvokeMember("submit")       送信ボタンをクリックしてFORM action を実行させたい場合
'InvokeScript("関数名")       HTML ページで定義されたアクティブ スクリプト関数を実行
'OuterHtml              現在の要素の HTML コードを取得または設定する場合
'OuterText              現在の要素のテキストを取得または設定する場合
'RaiseEvent("onChange")       Change イベントを発生させたい場合
'SetAttribute("Checked", "")     オプションボタン・チェックボックスの選択のチェックを外す場合
'SetAttribute("Checked", "true")   オプションボタン・チェックボックスを選択する場合
'SetAttribute("Selected", "True")  リストボックスのアイテムを選択する場合
'SetAttribute("selectedIndex", "2") リストボックス等の指定のアイテムを選択する場合
'SetAttribute("value", "文字列")   テキストボックス等に書き込む場合

<<HTMLのタグ読み込み>>
For Each objectA In objectIE.document.Body.all.tags("td") 'TDタグのみ読み込む
Next

For Each objectA In objectIE.document.Body.all '全てのタグを読み込む
Next

<<HTMLタグ名取得>>
objectA.tagname

<<IE開いて閉じる>>
Dim a As Object
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
html = "http://minkabu.jp/stock/list/" & i
ie.Navigate html
waitNavigation ie 'ちゃんとIEが開くまで待つ
ie.Quit

<<IE待ち>>
Sub waitNavigation(ie As Object)
    Do While ie.Busy Or ie.ReadyState < 4
        DoEvents
    Loop
End Sub

参考サイト
VBレスキュー花ちゃん
ダメ株主 Z

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。