Smooth Scrolling comes to Excel for Windows
This post is originally published on Excel Blog articles
We’ve heard from many of you that it can be difficult to scroll through a worksheet with large cells and view all the data. The main reason for this issue is that Excel automatically snapped to the top-left cell as you scrolled. Though you might think this is an easy fix, simply requiring the alteration of a few lines of code, there’s actually a lot more to it. In fact, we learned that this change affects many different aspects of Excel, including freezing panes, resizing rows, cutting and pasting, filtering, cell styles, comments, dragging and filling, and more.
How it works
When you’re scrolling in a sheet with very large cells, the way Excel for Windows snapped to the grid made it hard to view your data. Many of you requested that we improve the way this works, and that’s just what we’ve done. We fixed the issue by making the scrolling much smoother—there are 2 parts to this update.
- First, it’s smoother during the scroll when using either the mouse wheel* or the scrollbars (touch screen and touch pad already scrolled smoothly).
- Second, and most importantly, you can stop scrolling partway through a row or column, and Excel won’t force you to go any further than you want.
|* Depending on the mouse or touch pad you’re using, you may not be able to scroll one pixel at a time. If you don’t have a “precision” mouse or touch pad, each movement will be based on the height of one line of text. If your Windows setting is to move 1 line for each click of the scroll wheel, it will move by line of text rather than by 1 row of your worksheet.|
Things to Try
- Increase the height on some rows in your spreadsheet and scroll using your mouse wheel or touch pad to see that you can stop partway through a row, and avoid snapping to the top.
- Drag the scroll bar to see that you can scroll with precision and you can stop anywhere you like.
Want to know more?
All you need to know is that Excel will scroll better, but we wanted to share more about the story of this improvement. It provides an interesting peek at the complexities of making even small changes to Excel, which has been around for decades and has so many features. Many who’ve asked for Excel to stop snapping when you’re trying to scroll just a little have also asked why this wasn’t done a long time ago. After all, it should be a simple matter of removing a few lines of code that causes the sheet to snap. Right? We wish it were as easy as that. It may seem straightforward to smooth things out, but we knew there could be some side effects to not snapping. In fact, we learned that this change impacted many things in Excel.
We found 2 main types of issues as a result of not snapping to the edges and scrolling smoothly. One set of issues dealt with the positioning of objects on the sheet, and the other set of issues related to how objects are displayed while you’re scrolling.
To understand why there were issues with positioning objects on the sheet, it’s helpful to know that the position of the sheet (which cell is in the top-left corner of the visible area) is fundamental to just about everything that gets displayed in Excel. For example, if you have a chart, Excel calculates the position where the chart should be displayed based on the distance from the top left cell. Calculations like this were created with the understanding that the sheet would always be positioned cleanly on the edge of a row and column. Now that smooth scrolling allows the sheet to be positioned partway through rows and columns, those calculations had to be updated to avoid your chart showing up in the wrong place. Likewise, there are calculations to determine where objects and screen elements should appear while scrolling. Many of these calculations assumed that Excel would always be cleanly snapped to cell edges. To provide a smooth experience, we had to come up with new ways to calculate these positions in a more dynamic way.
We also found issues related to the location of mouse and touch points in the sheet. There are calculations to determine where you’re clicking or pointing in Excel. If these calculations assume the sheet would be snapped, your click might not hit what you expect it to hit. For example, you may click on a cell, but a different cell would be selected.
Using your touch screen is similar. Excel calculates what should be in the place where you touched, and it always assumed the sheet would be snapped. One issue we found was that if we scrolled partway through a row and tried to draw on the sheet, there would be a gap near the bottom of the sheet where we couldn’t draw anything. The gap was exactly the same height as the part of the top row that was scrolled out of view.
Those are just a few examples, but the graphic below emphasizes the wide-ranging effects of this change, by showing of all the different things in Excel that could be affected by the position of the sheet no longer being snapped cleanly to the edge.
The diagram below shows that with smooth scrolling, the sheet can be scrolled partway through a row and column, which creates an “offset” distance both horizontally and vertically. This offset had never been possible, since the sheet was always snapped to the edge of a row and column. The calculations of where things are positioned on the screen was straightforward. Now the calculations need to deal with the offset, so it’s significantly more complicated.
We found in early testing that some things just didn’t look or work as expected, so we realized this was not going to be a simple or straightforward change. As indicated by the word graphic above, almost everything in Excel could be affected, so we had to carefully investigate each part of the app. As you might expect, fixing one issue sometimes came with unwanted consequences, so there were new issues to fix. Sometimes we had to take a step back and design a fix in a new way that would avoid causing additional problems.
Another consideration is the variety of different ways that you can scroll in Excel – mouse wheel, touch pad, touch screen, scroll bar drag, scroll bar buttons, selection drag, and more. Each scroll method has differences that could be impacted by these changes. We spent time working to streamline the code for each of the scrolling methods to reduce the differences. This means that fixing an issue for one scrolling method would likely fix it for all. It was time well spent, but it delayed the release of Smooth Scrolling.
We understand that scrolling is such a basic and fundamental part of how everyone uses Excel. For this reason, we had to be very careful at every step of the way to ensure that while we’re making a big improvement, we don’t miss something important. It was a classic “peeling the onion” story in software development - the more layers that you uncover, the more you find. Now we’ve peeled all the layers, we expect it to be smooth scrolling into the future.
This feature is available to Insiders on Windows with Beta Channel or Current Channel Preview with Version 2109 (Build 14430.20000) or later. Features are enabled gradually over some time to ensure things are working properly. We post about features that you may not have on your computer, because they’re slowly being enabled for more and more people. It should be available to all M365 Subscribers in the coming months.
If you have any comments or questions about scrolling in Excel for Windows, please send feedback in Excel by clicking Help > Feedback. We’d love to hear from you! Learn what other information you should include in your feedback to ensure it’s actionable and reaches the right people. We’re excited to hear from you!