№05. Excel VBA-[ワークシート上にスクロール領域を設定する。] | GTZ&RSのブログ

GTZ&RSのブログ

GT-Z&RSでは、コンピュータ関連情報や地域情報を中心に発信しています。

№0005. Excel VBA-[ワークシート上にスクロール領域を設定する。]
 Excelマクロでは、ワークシート上にスクロール領域を設定することができます。
 ワークシートを、データ入力領域と表示領域などの領域に区分している時に、不用意にワークシート上の任意のセルをスクロールしないように制限する場合に設定します。


ScrollAreaプロパティ
 ScrollAreaプロパティは、ワークシート上のスクロールが可能な領域を設定します。
 または、現在設定されているスクロールが可能な領域を取得出来ます。
 なお、ワークシート全体をスクロールが可能な領域に設定する場合(解除)は、""を設定します。

 今回は、Sample_SetScrollArea()プロシージャに、次の処理を実装した例を掲載します。
 ※Sample_SetScrollArea()プロシージャは、任意の名前です。
 Sample_SetScrollArea()プロシージャは、標準モジュールのModule1モジュール内に記述します。

  • ScrollAreaプロパティに、ワークシート上のスクロールが可能な領域(例、B5:J20)を設定する。

 また、Sample_ResetScrollArea()プロシージャに、スクロールが可能な領域をワークシート全体に再設定する処理を実装した例も掲載します。
 ※Sample_ResetScrollArea()プロシージャは、任意の名前です。
 Sample_ResetScrollArea()プロシージャは、標準モジュールのModule1モジュール内に記述します。

  • ScrollAreaプロパティに、ワークシート全体をスクロールが可能な領域を再設定("")する。

《ソースコード》
  Option Explicit
  
  #Const DEBUG_VERSION = 1                                                ' 本番環境の場合は = 0
  
  Public Sub Sample_SetScrollArea()
    ' スクロール可能領域の設定
    
    Dim strScrollArea As String                                         ' スクロール領域を格納する文字列型変数
    
    strScrollArea = "B5:J20"                                            ' スクロール領域の指定
    
    ActiveSheet.ScrollArea = strScrollArea                              ' スクロール領域の設定
    
  End Sub
  
  Public Sub Sample_ResetScrollArea()
    ' スクロール可能領域の解除
    
    Dim strCellAddress As String                                        ' セルアドレスを格納する文字型変数
    
    strCellAddress = "A1:A1"                                            ' カーソルのホームポジションの指定
    
    With ActiveSheet
      .ScrollArea = ""                                                ' スクロール領域の解除
      .Range(strCellAddress).Select                                   ' 任意のセルを指定する。
    End With
    
  End Sub

update:2009.01.21

Copyright (C) 2009 S.IKE