0

Google で検索できたのはわかっていますが、どの用語を検索すればよいか分からないほど、Google に慣れていません。ここであなたの提案を聞くのに役立ちます。

例:

Sub Macro1()
'
' Macro1 Macro
'

'
    Windows("FL_bounces.csv").Activate
    Windows("auto_dealers_FL.csv").Activate
    Windows("FL_bounces.csv").Activate
    Windows("auto_dealers_FL.csv").Activate
End Sub

開いているウィンドウの名前がわからない場合を除きます。

編集#2:

Sub Macro1()
'
' Macro1 Macro
'

'
    Dim wn, contacts, report As Excel.Window
    Dim windows(1 To 100) As Excel.Window
    Dim i As Integer

    i = 1
    For Each wn In Application.windows
        windows(i) = wn
        i = i + 1
    Next wn

    If IsEmailValid(windows(1).Cells(1, 1)) = True Then
        report = windows(1)
        contacts = windows(2)
    Else
        contacts = windows(1)
        report = windows(2)
    End If


End Sub

この変更で何が間違っていると思いますか?

4

3 に答える 3

2

これにより、現在開いているすべてのウィンドウがイミディエイト ペインに一覧表示されます。

Sub ListWindows()
Dim wn As Excel.Window
For Each wn In Application.Windows
    Debug.Print wn.Caption
Next wn
End Sub

または、サンプルコードのように、それらをアクティブにしたい場合

Sub ActivateWindows()
Dim wn As Excel.Window
For Each wn In Application.Windows
    wn.Activate
    MsgBox wn.Caption & " Window Activated"
Next wn
End Sub
于 2013-03-15T04:54:02.833 に答える
1

AutoITを試してみてください。AutoIT dll への参照が必要です。autoit dll をダウンロードできるリンクは次のとおりですhttp://www.autoitscript.com/site/autoit/

AutoIt のバリアント データ型は、ウィンドウ ハンドル (HWND) をネイティブにサポートします。ウィンドウ ハンドルは、ウィンドウが作成されるたびにウィンドウに割り当てられる特別な値です。ハンドルがある場合、タイトル/テキスト規則を使用する任意の関数呼び出しで、タイトル パラメータの代わりにそれを使用できます。ウィンドウ ハンドルを使用する利点は、同じタイトル/テキストを持つアプリケーションの複数のコピーを開いている場合、ハンドルを使用するときにそれらを一意に識別できることです。title パラメーターにウィンドウ ハンドルを使用すると、text パラメーターは完全に無視されます。

WinGetHandle、WinList、GUICreate などのさまざまな関数がこれらのハンドルを返します。ウィンドウ ハンドルは数値や文字列として分類されないことに注意することが重要です。これは独自の特殊な型です。

Public Sub TestingAutoIT()
    Dim autoItObj As AutoItX3
    Set autoItObj = New AutoItX3

    With autoItObj    
        .WinActivate ("A Window Name")        
    End With

    Set autoItObj = Nothing
End Sub
于 2013-03-15T05:58:33.063 に答える