質問: フレームのスクロールバーの値が変化したときに、変化した方向に応じた処理を行いたいです。 ネットで調べても、スクロールバーのことしかわからなかったので、 フレーム版も教えていただけるとありがたいです
回答: フレームのスクロールバーを移動・操作すると、フレームのスクロールイベントが発生します。 このScrollイベントの引数から操作内容や移動量が取得できます。 ⇒参考 ``` Private Sub Frame_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle) Dim sMsg As String sMsg = sMsg & "水平スクロールバーへの操作:" & ActionX & vbcr sMsg = sMsg & "要求された水平移動量:" & RequestDx & vbcr sMsg = sMsg & "実際の水平移動量:" & ActualDx & vbcr sMsg = sMsg & "垂直スクロールバーへの操作:" & ActionY & vbcr sMsg = sMsg & "要求された垂直移動量:" & RequestDy & vbcr sMsg = sMsg & "実際の垂直移動量:" & ActualDy & vbcr Msgbox sMsg End Sub ``` 実際にスクロールしたときだけ処理を行いたいのであれば、ActualDx/ActualDyで判断すればよいでしょう。 正の値なら右方向(または下方向)への移動、負の値なら左方向(または上方向)への移動です。