Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20947 / 76738 ←次へ | 前へ→

【61199】Re:グラフシート(チャートシート)の左上にスクロールしたい
発言  Abyss  - 09/4/16(木) 0:46 -

引用なし
パスワード
   とにかくScrollさせたいなら↓の方法で。

Private Declare Function FindWindowExA Lib "User32" _
  (ByVal hParent As Long, _
   ByVal hChildAfter As Long, _
   ByVal lpszClass As String, _
   ByVal lpszWindow As String) As Long
  
Private Declare Function SendMessageA Lib "User32" _
  (ByVal Hwnd As Long, _
   ByVal Msg As Long, _
   ByVal wParam As Long, _
   ByVal lParam As Long) As Long

Private Declare Function GetDlgItem Lib "User32" _
  (ByVal Hwnd As Long, _
   ByVal nIDDlgItem As Long) As Long
  
Private Const WM_HSCROLL = &H114&
Private Const WM_VSCROLL = &H115&
Private Const SB_TOP = &H6&

Public Sub ScrollTopLeft()

  Dim Hwnd As Long
  Hwnd = FindWindowExA(Application.Hwnd, 0&, "XLDESK", vbNullString)
  Hwnd = FindWindowExA(Hwnd, 0&, "EXCEL7", vbNullString)
  
  SendMessageA Hwnd, WM_VSCROLL, SB_TOP, GetDlgItem(Hwnd, 2&)
  SendMessageA Hwnd, WM_HSCROLL, SB_TOP, GetDlgItem(Hwnd, 4&)

End Sub

なお、C#用にAPIを変換するならこちらが
ご参考になるでしょう。

http://www.pinvoke.net/default.aspx/user32.FindWindowEx
http://www.pinvoke.net/default.aspx/user32.SendMessage

0 hits

【61114】グラフシート(チャートシート)の左上にスクロールしたい ほんこ 09/4/10(金) 9:47 質問
【61130】Re:グラフシート(チャートシート)の左上... Jaka 09/4/10(金) 15:46 発言
【61151】Re:グラフシート(チャートシート)の左上... ほんこ 09/4/13(月) 9:05 お礼
【61157】Re:グラフシート(チャートシート)の左上... n 09/4/13(月) 21:15 発言
【61199】Re:グラフシート(チャートシート)の左上... Abyss 09/4/16(木) 0:46 発言
【61291】Re:グラフシート(チャートシート)の左上... ほんこ 09/4/23(木) 8:43 お礼

20947 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free