Excelファイル内のすべてのシートのカーソル位置をA1に移動し、拡大率100%にするVBAサンプルを紹介します。
仕様
「ボタン」を押すと「読み込みExcelファイル」のパスからExcelを開き、各シートの選択セルをA1セルにし、拡大率を100%にします。
ソースコード
Sub ボタン1_Click()
'このブックを取得
Set myWorkBook = ThisWorkbook
'A1に固定するExcelのパスを取得
Dim filePath As String
filePath = myWorkBook.Worksheets("Sheet1").Cells(2, 2).Value
'ターゲットのブックを開く
Workbooks.Open Filename:=filePath
Set targetWorkBook = Workbooks(Dir(filePath))
'全シートループ
For Each targetSheet In targetWorkBook.Worksheets
targetSheet.Activate
'A1セルを選択
Application.Goto Reference:=targetSheet.Range("A1"), Scroll:=True
'拡大率100%
ActiveWindow.Zoom = 100
Next
'一番左のシートに選択を戻す
targetWorkBook.Sheets(1).Activate
'保存する
targetWorkBook.Save
'別ブックを閉じる
targetWorkBook.Close savechanges:=True
End Sub
マクロの実行
テストフォルダ構成
下記のファイル構成でテストしてみます。
ファイル名 | 用途 |
---|---|
Test.xlsx | セル移動、拡大率100%にさせる対象のExcelファイル |
別ブックA1設定.xlsm | マクロを実行するExcelファイル。 この中でTest.xlsxを指定しています。 |
設定(別ブックA1設定.xlsm)
下記の通り、カーソルをA1に移動させたい対象ExcelをB2セルに指定します。
実行前(Test.xlsx)
「C:\temp\test\」にテストファイル「Test.xlsx」を用意し、下記のようにカーソル位置も拡大率もバラバラなシートを適当に用意します。(今回は例として3シート用意しています)
Sheet1
Sheet2
Sheet3
実行後(Test.xlsx)
下記の通り、Test.xlsxのシートのA1セルにカーソル移動していることが確認されました。
Sheet1
Sheet2
Sheet3
参考情報
マクロのあるExcelと編集対象Excelは別
A1セル移動する対象ファイルは仕様書、設計書、お客様向け資料だったりする大事な資料であるケースが多々あります。
なので対象ファイルにはマクロを保存せず、別Excelのマクロから対象ファイルを操作します。
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | Excel | Excel2016 |
以上です。
コメント