マクロ記録で エクセル ブックの切り替えを調査する
シートの切り替えはできたので、
ブックの切り替えにチャレンジしてみる。
マクロ記録でブックの切り替えをチェックすると
Sub Macro3() ' ' Macro3 Macro ' ' Application.Left = -108.5 Application.Top = 46 Windows("TEST001.xls").Activate Sheets("Sheet3").Select Windows("TEST20110207.xlsm").Activate Application.Left = 32.5 Application.Top = 46 End Sub
と記録されました。
ここから、
Windows("TEST001.xls").Activate
で、ブックが切り替わることを確認。
次に開かれているブックの数を知りたかったので、
イミディエイトのウインドウで
application.
と入力すると、.Windowsが見つかり、
その先にいつもの.Countを発見。
? Application.Windows.Count
でチェックすると、2が(2つブックを開いていたので)
Application.Windows.Count で ブックの数を知ることができました。
あとは、組み合わせで、ループさせてみました。
'開いているブックのすべてのシートに対して、自動列幅調整を行うテスト Sub Macro2() 'ブックの数 Application.Windows.Count で '切り替えは Windows(index番号).Activate で 'シートの数 ActiveWorkbook.Sheets.Count 'シートの選択 Activeworkbook.Sheets(番号でもOK).Select ※1から Dim b As Integer 'ブックのカウンター Dim n As Integer 'カウンター For b = 1 To Application.Windows.Count 'ウインドウ(ブック)の数ループ Windows(b).Activate 'b番目のブックをアクティブにする 'シートの数だけループする For n = 1 To ActiveWorkbook.Sheets.Count Sheets(n).Select 'シートのn番目を選択 Cells.EntireColumn.AutoFit '列幅を自動調整 Range("A1").Select 'カーソルをA1へ Next n Next b End Sub
試行錯誤、マクロ記録からブックの切り替えを探る
試行錯誤の動画、マクロ記録から、WorkBookを切り替える命令(VBA)を探ってみました。
www.youtube.com
http://www.youtube.com/watch?v=wucvPMmq4Is
↑こんな感じで、途中 固まりながら 探ってます。
予定外のエラー で 固まりまくりの 三流君を笑ってください(笑)
全体の解説は http://ken3hitori.g.hatena.ne.jp/bbs/18?from=1 を見てください。