personal.xls 強化講座

Home What's
New
Site
Concept
生産性向上
基本テクニック
トラブル回避
テクニック
生産性向上
リンク
personal.xls
強化講座
生産性向上
ツール
Site
Map
Coffee
Break
Guest
Book
地球風
画像館
Q&A Salon
EXCELの質問はこちらへ

 

1.あるとちょっと便利なマクロ(1-10)
05/06/2000 -

このページのマクロ(テキスト)の表示

(1) ウィンドウの上下整列
 
開いているブックのアクティブウィンドウを上下に整列します。

標準では、「ウィンドウ(W)」「整列(A)」「上下に並べて表示(O)」「OKボタン」という一連の作業に該当します。
 
   
 
Sub ウィンドウの上下整列()
'
    Windows.Arrange ArrangeStyle:=xlArrangeStyleHorizontal    'xlArrangeStyleVertical にすると横に並べて整列
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(2) アクティブ画面の複数画面表示
 
現在アクティブなシートをもう1つ別に開いて、さらにウィンドウを上下に整列します。
(他のファイルも開いている場合はそれも含めて上下に整列してしまいます)

1つのファイルの複数のシートを同時に見たいという時に重宝します。

標準では、「ウィンドウ(W)」「新しいウィンドウを開く(N)」「ウィンドウ(W)」「整列(A)」「上下に並べて表示(O)」「OKボタン」という一連の作業に該当します。

 
   
 
Sub 同一Sheetの複数画面表示()
 
    Dim sBookName As String
    Dim nLen As Integer
    sBookName = ActiveWindow.Caption                    'ファイル名取得
    nLen = Len(sBookName)                               'ファイル名文字数
    ActiveWindow.NewWindow                              '新しいウィンドウを開く
    If Mid(sBookName, nLen - 1, 1) <> ":" Then
        Windows(sBookName & ":1").Activate              ':1 をアクティブにする
    End If
    Windows.Arrange ArrangeStyle:=xlArrangeStyleHorizontal          '上下に並べて表示する
 
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(3) 全シートをHOMEポジションに
 
アクティブなブック(ウィンドウが表示されているファイル)の全てのシートについて、一番左上のセル(A列1行目)が選択された状態にします。
自分で作成した EXCEL ファイルを人に渡すとき、もしくは他人の作った EXCEL ファイルを開いて見るとき、各シートを頭に戻すスクロールの手間が省けます。

 ■
隠しているシートがあってもエラーにならないように修正しました。(2001.02.03)
 
   
 
Sub To_Home()
 
    Dim ws As Variant
 
    For Each ws In Worksheets
        If Sheets(ws.Name).Visible = True Then
            Sheets(ws.Name).Select
            Range("A1").Select
        End If
    Next
 
    Sheets(1).Select
 
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(4) 入力後のセル移動方向の切替
 
セルの編集をして、リターンキーを押したときに、アクティブなセルを右に移動するか下に移動するかを循環式で切り替えます。

標準では、「ツール(T)」「オプション(O)」「編集」タブにある「入力後にセルを移動する(M)」「方向(I)」を指定して「OKボタン」という一連の作業に該当します。
 
   
 
Sub セル移動方向切替()
'
    If Application.MoveAfterReturn = False Then
        Application.MoveAfterReturn = True
        Application.MoveAfterReturnDirection = xlDown
        Exit Sub
    End If
    If Application.MoveAfterReturnDirection = xlDown Then
        Application.MoveAfterReturnDirection = xlToRight
    Else
        Application.MoveAfterReturnDirection = xlDown
    End If
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(5) 枠線の表示切替
 
枠線の表示と非表示を(循環式に)切り替えます。
標準では、「ツール(T)」「オプション(O)」「表示」タブにある「枠線(G)」のチェックを指定または解除して「OKボタン」という一連の作業に該当します。
 
   
 
Sub 枠線表示切替え()
'
    ActiveWindow.DisplayGridlines = Not (ActiveWindow.DisplayGridlines)
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(6) 行列番号の表示切替
 
行列番号の表示と非表示を(循環式に)切り替えます。
 標準では、、「ツール(T)」「オプション(O)」「表示」タブにある「行列番号(E)」のチェックを指定または解除して「OKボタン」という一連の作業に該当します。
 
   
 
Sub 行列番号表示切替()
'
    ActiveWindow.DisplayHeadings = Not (ActiveWindow.DisplayHeadings)
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(7) 全ての隠しシートを表示する
 
EXCEL では、シート単位に表示・非表示を設定することが可能です。「人にはあまり見られたくないが消してしまうのも困るシート」を隠しておくことも良くあります。
この機能は、そのような隠れているシートを全て表示してしまいます。
 
   
 
Sub 全シート表示()
'
    Dim ws As Variant
 
    For Each ws In Sheets
        Sheets(ws.Name).Visible = True
    Next
 
    Sheets(1).Select
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(8) シートを確認しながら非表示にする
 
上の逆で、「消すのは困るが隠しておきたいシート」を隠すことができる機能です。
アクティブなブックの1つ1つのシートについてメッセージに答えていくことで、シートを非表示にしていきます。
なお、全てのシートを隠すことはできません(警告が表示されます)。

非表示にしたシートを再表示させるには、「全ての隠しシートを表示する」機能を使います。
 
   
 
Sub シート隠蔽()
'
    Dim ws As Variant
    Dim response As Integer
    Dim i As Integer
    Dim cnt As Integer          'シート数
'
    cnt = 0
    For Each ws In Sheets
        If Sheets(ws.Name).Visible = True Then  '表示されているシートの数
            cnt = cnt + 1
        End If
    Next
'
    i = 0
    For Each ws In Sheets
        If Sheets(ws.Name).Visible = True Then
            Sheets(ws.Name).Select
            i = i + 1
            response = MsgBox("シート(" & i & ") 【 " & ws.Name & " 】 を隠しますか?" & Chr$(13) & Chr$(13), _
                            vbYesNoCancel + vbQuestion + vbDefaultButton2, "確認!")
            If response = vbYes Then
                If cnt = 1 Then
                    MsgBox "全てのシートを非表示にする事は出来ません!", vbExclamation
                    Exit Sub
                End If
                Sheets(ws.Name).Visible = False
                cnt = cnt - 1
            Else
                If response = vbCancel Then
                    Exit Sub
                End If
            End If
        End If
    Next
'
End Sub


←目次へ戻る / このページのマクロ(テキスト)の表示

(9) A1形式R1C1形式の切替
 
A1参照形式とR1C1参照形式を(循環式に)切り替えます。(マクロを組むときに重宝したりします)

標準では、「ツール(T)」「オプション(O)」「全般」タブにある「R1C1 参照形式を使用する(C)」のチェックを指定または解除して「OKボタン」という一連の作業に該当します。
 
   
 
Sub A1_R1C1()
'
    If Application.ReferenceStyle = xlR1C1 Then
        Application.ReferenceStyle = xlA1
    Else
        Application.ReferenceStyle = xlR1C1
    End If
'
End Sub

←目次へ戻る / このページのマクロ(テキスト)の表示

(10) ワンタッチで印刷ヘッダーを挿入する
 
作成するドキュメントに、いつも決まったヘッダーやフッターを指定される方もいるかと思います。
そのような手続きを、自動化してしまいましょう。
下の例では、右上の印刷ヘッダーに ファイル名 シート名 日付 時間 ページ番号/総ページ数
というヘッダーを指定した後、印刷プレビューを表示します。

標準では、「ファイル(F)」「ページ設定(U)」「ヘッダー/フッター」タブにある「ヘッダーの編集(C)」のボタンを押して、して「右側(R)」に &[ファイル名] &[シート名] &[日付] &[時刻] &[ページ番号] / &[総ページ数] という指定を行う一連の作業に該当します。
 
   
 
Sub Auto_Header()
 
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = "&10&F &A &D &T &P / &N"
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
    End With
    ActiveSheet.PrintPreview
End Sub

←目次へ戻る / このページのマクロ(テキスト)の表示

personal.xls 強化講座目次 Next

モーグ

Google
  Web excel7.com