• 締切済み

再び質問です。1つのシートを上下に分割した状態で、

できれば、新しいウィンドウを開かずに、 ウィンドウ⇒分割 1つのシートを上下に分割した状態で、 上半分のシートは、縦のスクロールが1から50までに制限し、 下半分のシートは、縦のスクロールが60から100までに制限したいのです。 ↑ここまでは、解決しました。(下記マクロ) Private Sub Worksheet_SelectionChange(ByVal Target As Range) If ActiveWindow.Panes.Count = 1 Then ActiveSheet.ScrollArea = "" Exit Sub End If ActiveSheet.ScrollArea = IIf(ActiveWindow.ActivePane.Index = 1, "1:50", "60:100") End Sub できれば、同時に水平のスクロールをA列からP列までに制限したいのですが、 マクロの続きを教えていただけると幸いです。

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

セル範囲を指定すれば良いと思います。 ActiveSheet.ScrollArea = IIf(ActiveWindow.ActivePane.Index = 1, "A1:P50", "A60:P100")

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル画面を上下に2分割した場合のマクロについて

    エクセル画面を上下に2分割したく、下記のマクロを用いております。 すなわち、上下2分割した上のほうのシートは、A1:S30 までスクロール可能とし、 下のほうのシートは、A50:S80までスクロール可能です。 しかし、操作中に、上のシート表示が、いけないはずの50列あたりまでスクロールしてしまい、戻せなくなってしまいます。また、下のシートも同様です。 難しいかと思いますが、上下のシートが表示列を守るようにできますでしょうか。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If ActiveWindow.Panes.Count = 1 Then ActiveSheet.ScrollArea = "" Exit Sub End If ActiveSheet.ScrollArea = IIf(ActiveWindow.ActivePane.Index = 1, "A1:S30 ", "A50:S80") End Sub

  • エクセルのシート分割について

    エクセルシートの分割について、ご教授をお願いします。 シートの分割表示は縦・横ともに2分割表示までは出来ますが、 これを3分割表示する事は可能なのでしょうか? 1~10列目、101~110列目、201~210列目、を 同時に確認したいのですが、 現状では2分割し、1つ目には1~10列目と 101~110列目をスクロールさせ、 2つ目に201~210列目を表示させて確認しています。 3分割できれば非常にありがたいのですが、 これは可能なのでしょうか。 以上です。

  • エクセルで特定のセルしか選択させない方法?

    エクセル97です。シートの連続しない特定のセル数箇所だけをカーソルで選択できるようにし、他の部分はカーソルが移動しないようにしたいのです。過去の書き込みをみて Sub Test() ActiveSheet.ScrollArea = "F10" ActiveSheet.ScrollArea = "F12" ActiveSheet.ScrollArea = "F14" End Sub と、やってみましたが、F10で止ったままになってしまいました。 連続しないセルを指定するのはどうすればいいのでしょうか? また、この制限を解除する方法も教えてくださいますようお願いします。

  • シート名でなくindex番号でシートの移動をしたい

    windows7 Excel2007でマクロ作成の初心者です。以下の点で困ってます。ご指導お願いします。 シートの次ページへ、およびページの前に戻るというコードをつくりましたが、文字列でなく、indexを使ってつくりたのでですが、思うようになりません。 現在のコードは Private Sub 次ページへ_Click() If ActiveSheet.Name <> "23.日本太郎" Then ActiveSheet.Next.Activate End If End Sub ---------------------------------- Private Sub 前に戻る_Click() On Error Resume Next If ActiveSheet.Name <> "1.日本花子" Then ActiveSheet.Previous.Activate End If End Sub これを Dim i As Integer For i = 1 To Worksheets.Count - 6 などを使って作りたいです、なぜかというとシートの増減で名前が変わったとき、いちいち名前を変更しなければならないからです。

  • シートのイベント VBA

    シートをクリックしたらシートをクリアしたいのですが クリックするセルがA1の場合は、マクロを実行させたくないのですが 下記のコードだとエラーになってしまいます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Target.Range = Range("a1") Then Cells.Clear End If End Sub ”Range("a1")でなければ、Cells.Clearする” にはどうすればいいですか?

  • VBA 画面分割でアクティブセルの太枠が消える

    EXCEL VBA初心者です。 アクティブXコントロールを使って画面分割させようと考えています。 コントロールでウィンドウの分割をするとアクティブセルが太枠表示されないことがあります。されることもあります。 表示されない状態の時に他のウィンドウに一旦飛んでから戻って来ると表示されます。具体的サンプルは以下です。 基本アクティブXコントロールに埋め込んで動かしていますが、マクロでも基本的に同様です。 '画面分割のコントロール Private Sub ウィンドウ分割_Click() '初期画面の位置設定 With ActiveWindow .ScrollColumn = 1 .ScrollRow = 1 End With '本題はここから Worksheets("sheet1").Range("F3").Select '太枠確認用 With ActiveWindow .SplitColumn = 5 .SplitRow = 2 End With End Sub '分割解除のコントロール Private Sub 分割の解除_Click() ActiveWindow.Split = False End Sub 太枠表示されない原因をお分かりの方教えていただきたくお願いします。

  • シートの移動又はコピー したシートの値のクリアー

    WINDOWS XP EXCELL 2003です。 「値のクリァー」のマクロはすでに、 ここで御指導いただいたマクロは下記です。 http://okwave.jp/qa/q6663748.html Sub Clear() On Error Resume Next range("H2,G4,C10,C15,F15,G15").SpecialCells(xlCellTypeConstants).ClearContents End Sub 上記マクロは「納請書3」にそうにして「シート追加」で「納請書4」作成したところ下記のマクロを実行すると「納請書3」のシートの値がクリアーになります。 御指導いただきたいのは既に「納請書3」値が有りこれはクリアーしたくありません。 新たにシートを追加してゆくと前のシートの値か残り追加シートの値をクリアーするにはクリアーは可能でしょうか。 もし可能ならば「値のクリアー」のマクロをどう変更すればいいのかご教授いただけないでしょうか。 よろしく御願いします。 ※ 参考で既に「納請書3」のシートには下記マクロの2点が登録しています。 1  「シートの追加」のマクロが下記です。 Sub シートの追加()    Dim NewNo As Integer   NewNo = Sheets("月請求書").Index Sheets("納請書3").Copy Before:=Sheets("月請求書")   ActiveSheet.Name = "納請書" & NewNo   ActiveSheet.Range("G4").Value = "" End Sub 2  日付とシート表示の色付け    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$C$10" Then Target.Offset(-6, 2).Value = Date End If If Target.Address = "$G$15" Then ActiveSheet.Tab.ColorIndex = 49 End If End Sub

  • シート保護のパスワードは・・・

    下の「シート保護」マクロは、パスワード「111」でシートを保護しなさい。    「シート保護解除」マクロは、パスワード「111」でシートの保護解除をしなさい。 という命令だと思うのですが・・・ Sub シート保護()   ActiveSheet.Protect possword = "111" End Sub Sub シート保護解除()   ActiveSheet.Unprotect possword = "111" End Sub パスワードを入力してシートの保護を解除しようとすると、 入力したパスワードは間違っています。 CapsLockキーがオフになっていることを確認し、 大文字と小文字が正しく使われていることを確認してください。 というメッセージが出るのですが・・・、 マクロで作成した保護は、マクロで解除しないとダメという意味なのですか? シートで保護解除できるようにしたいのですが、できますか?

  • 「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」

    「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」 というVBAコードが知りたいのですが Sub Macro1() Selection.Copy Sheets("Sheet2").Select Selection.End(xlDown).Offset(1).Select ActiveSheet.Paste End Sub ではうまくいきませんでした。 ・マクロを実行する前のもともとのアクティブセルはシート1の入力されたセル上にあるとします。 ・シート2のA列にはA1~A?と削除したり挿入したりで数が変わりますが何かしら文字列が隙間なく入っています。 よろしくお願いします。

  • エクセルでマクロを使って新規シートを作成する方法を教えてください!(条件あります)

    初めて質問するのですが、エクセルで原紙シートのマクロまで全てをコピーして新規のシートを作成させるにはどうしたらいいですか? 新規のシートの特定のセルに入力した時に新規シートが作成されるようにできますか? 原紙は Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Address = "$A$1" Then ActiveSheet.Name = Target.Value End If End Sub のマクロが現在できあがってます。これを残しつつできますか?よろしくお願いします!

専門家に質問してみよう