こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excelの可視セルを知りたい

ExcelにおいてVBAを使っています。シートをスクロールして表示された左上位置にある可視セルを知ることはできますか。アクティブセルとか範囲指定されている場合のようにできないものでしょうか。

投稿日時 - 2011-10-16 09:11:36

QNo.7074635

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

こんにちは。

(1)いったんアクティブセルをA1にしてから、

(2)可視セルを選択する
Selection.SpecialCells(xlCellTypeVisible).Select

で、アクティブセルが可視セルの左上に来ると思うのですが、どうでしょうか。
そのあと、アクティブセルのアドレス値を取得するという流れでどう?

投稿日時 - 2011-10-16 10:18:50

補足

説明不足で申し訳ありません。Excelシートにウィンドウ枠固定をしており,シートに貼り付けたWindowsMediaPlayerがスクロールすれば隠れるのを防ぎたいのです。HyperLinkやUserFormを使う方法ではこの心配はないことを確認しております。WMPを貼り付けた場合は,スクロールしたときの特定な可視セルのアドレスが分かれば,それをもとにWMPを連動させることができるのではないかと考えてみた訳です。APIでスクリーン座標を使って,幾つの方法を検討していますが,今のところ旨くいってません。ご指摘の点は確認しました。ありがとうございました。

投稿日時 - 2011-10-16 11:32:40

お礼

次のようにして,貼り付けたコントロールの相対的な位置を固定しました。

Private Sub Worksheet_Activate()
WindowsMediaPlayer1.Left=Application.Left+OOO
WindowsMediaPlayer1.Top=Application.Top+OOO
End sub

丁寧な回答をいただき,ありがとうございました。

投稿日時 - 2011-10-16 17:05:45

ANo.1

VBAででも、何かをやっていて、困ったケースに、出くわしたのだろう。
そのケースを少し広く、質問に記述して、助けを求めるべきだ。
初心者は我流のピンとハズレの問題点にしてしまっている場合が結構あるから。
「こういう目的で、こういう場合にこうなったのだが、それではこまるので、こうしたいのでどうしたら良いか」のような。
エクセルの設定に、そういうものが無ければ、そういうことに出くわした際に都度、モジュールを実行するわけにも行かないだろう。
またエクセルのシートのイベントには、そういうものは普通ない(「スクロールしたとき」とか「表示しない」にしたときなど)
ので、そういうタイミングをとらえにくい。
ーー
質問の意味(必要性)がよくわからないが
Sub test01()
MsgBox ActiveWindow.VisibleRange(1).Address
End Sub
をやってどうかな。
PAGEDOWNや上スクロールなどして、画面第1行目を表示しないとすると、表示されている左上隅のセル番地を返したが。

投稿日時 - 2011-10-16 10:06:40

補足

失礼しました。ExcelシートにWindowsMediaPlayerを貼り付けていますが,シートをスクロールさせても,常時表示させたいのです。マウスを使ってWMPを移動させることはやっております。回答されましたことは確認しました。これをVBAに取り込むことができれば解決します。やりたいことは,このようなことですので,もっと良い方法がありましたら,よろしくお願いいたします。

投稿日時 - 2011-10-16 10:54:24

あなたにオススメの質問