作成日: 2026/11/12 最終更新日: 2026/11/12
文書種別
技術情報
詳細
[Ctrl + Shift + マウスホイール]操作によるシートの水平スクロールは17.0Jで機能が追加されました。17.0Jより前のバージョンでは、[Ctrl + Shift + マウスホイール]操作は[Ctrl + マウスホイール]操作同様、シートの拡大/縮小が既定動作でした。
17.0J以降のバージョンでも[Ctrl + Shift + マウスホイール]操作でシートの拡大/縮小を行うようにする場合、MouseWheelイベントでシートのZoomFactorプロパティを設定することで実現可能です。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' MouseWheel イベントの登録
AddHandler FpSpread1.MouseWheel, AddressOf FpSpread1_MouseWheel
End Sub
Private Sub FpSpread1_MouseWheel(sender As Object, e As MouseEventArgs)
' [Ctrl]+[Shift]キーが同時に押されているか判定
If (Control.ModifierKeys And (Keys.Control Or Keys.Shift)) = (Keys.Control Or Keys.Shift) Then
' 既定の水平スクロール処理を無効化
Dim handledMouseEventArgs = TryCast(e, HandledMouseEventArgs)
If handledMouseEventArgs IsNot Nothing Then
handledMouseEventArgs.Handled = True
End If
'【対応策】SPREADのZoomFactorを再設定し、拡大・縮小を実行
Dim stepValue As Single = 0.1F
Dim newZoom As Single
With FpSpread1.ActiveSheet
' マウスホイールの回転方向に応じて、10%ごとの拡大・縮小率を設定
If (e.Delta > 0) Then
newZoom = .ZoomFactor + stepValue
Else
newZoom = .ZoomFactor - stepValue
End If
' 拡大率の上限・下限(10%~400%)を制限
.ZoomFactor = Math.Max(0.1F, Math.Min(4.0F, newZoom))
End With
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// MouseWheel イベントの登録
fpSpread1.MouseWheel += FpSpread1_MouseWheel;
}
private void FpSpread1_MouseWheel(object sender, MouseEventArgs e)
{
// [Ctrl]+[Shift]キーが同時に押されているか判定
if ((Control.ModifierKeys & (Keys.Control | Keys.Shift)) == (Keys.Control | Keys.Shift))
{
// 既定の水平スクロール処理を無効化
HandledMouseEventArgs handledMouseEventArgs = e as HandledMouseEventArgs;
if (handledMouseEventArgs != null)
{
handledMouseEventArgs.Handled = true;
}
//【対応策】SPREADのZoomFactorを再設定し、拡大・縮小を実行
float stepValue = 0.1F;
float newZoom;
// マウスホイールの回転方向に応じて、10%ごとの拡大・縮小率を設定
if (e.Delta > 0)
{
newZoom = fpSpread1.ActiveSheet.ZoomFactor + stepValue;
}
else
{
newZoom = fpSpread1.ActiveSheet.ZoomFactor - stepValue;
}
// 拡大率の上限・下限(10%~400%)を制限
fpSpread1.ActiveSheet.ZoomFactor = Math.Max(0.1F, Math.Min(4.0F, newZoom));
}
}