• 締切済み

Excelの可視セルを知りたい

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

みんなの回答

noname#145348
noname#145348
回答No.2

こんにちは。 (1)いったんアクティブセルをA1にしてから、 (2)可視セルを選択する Selection.SpecialCells(xlCellTypeVisible).Select で、アクティブセルが可視セルの左上に来ると思うのですが、どうでしょうか。 そのあと、アクティブセルのアドレス値を取得するという流れでどう?

nobsan60
質問者

お礼

次のようにして,貼り付けたコントロールの相対的な位置を固定しました。 Private Sub Worksheet_Activate() WindowsMediaPlayer1.Left=Application.Left+OOO WindowsMediaPlayer1.Top=Application.Top+OOO End sub 丁寧な回答をいただき,ありがとうございました。

nobsan60
質問者

補足

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

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

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

nobsan60
質問者

補足

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

関連するQ&A

  • EXCELの可視セルって?

    こんばんは。 EXCELで可視セルというものがあります。 ずばり、これって いったいなんなのでしょうか。 どういう意味で、実際どういうときに役立つのかを 教えてください。 私は普通のコピペでこと足りると思うのですが、可視 セルの概念すらつかめていない、今日この頃の私です。

  • 可視セルから可視セルへのコピー

    エクセルのデータ集計で集計された数字(可視セル)を他のファイルの表にコピーしたいのです。 通常、編集→ジャンプから可視セルを選びコピー→形式を選択して貼り付けから値を選び 貼り付けているのですが、今回は表の方にも非表示にしている行があるのです。 なので通常の方法でやると表の方の非表示セルに値が貼りついてしまい困ってます。 可視セルの値を表の可視セルへコピーする方法はないのでしょうか?

  • Excel VBAで可視セルをコピーしようとすると結合されたセルを変更

    Excel VBAで可視セルをコピーしようとすると結合されたセルを変更する事が出来ないとメッセージが出て進めないのは、何故でしょうか。

  • エクセルでスクロールしても画面が動かない設定?

    他人の作ったエクセルなのですが、画面が固定されており、スクロールバーは動くのですが、いくらスクロールしても画面が動きません。 矢印キーでは一番右端や下のセルまで飛ぶことは「名前ボックス」のセル番地が表示されるのでわかるのですが、画面自体はまったく動きません。 メニューの「ウィンドウ」で見ると、「分割の解除」と「ウィンドウ枠固定の解除」となっており、これを解除すると普通にスクロールするので、「ウィンドウ枠の固定」と「ウィンドウの分割」を使ってこんなカラクリ(?)にしたのだろうとは想像するのですが、自分で同じように再設定することができません。 ためしに、画面の可視範囲外となるセルをアクティブにし、スクロールバーで画面をもとに(A1セルを左上に表示されるように)もどしてから、ウィンドウ枠の固定を行なうと、アクティブセルとは無関係のところで分割されてしまいました。 どうすればこんな設定が可能なのでしょうか? エクセルは2000です。

  • 可視セル設定をデフォルトにしたい

    エクセル2000を使っています。 コピー&ペーストのたびにいちいち可視セルの設定をするのが面倒です。 シートを開けたら可視セル設定がデフォルトになってるという方法は無いんでしょうか?

  • 可視セルのみのコピー

    あるエクセルシートのデータで、非表示の行または列があって、それを別のシートにコピーするとき、データは可視セルのみをコピーしつつも(非表示の行・列を自動削除)、書式・列幅だけは元データを生かし貼り付けということを簡単に行う方法はあるでしょうか。「編集ージャンプ」で可視セルのみ選択しコピーまではうまくいったのですが、貼り付けのとき、値貼り付けまたは行・列どちらかの貼り付けしかできず、書式・列幅は再度貼り付けるという2度手間になってしまいます。一度にできるよい方法があったら教えて下さい。

  • シートの可視セル部分のみに「名前の定義

    お世話になっております。 EXCEL2013で作ったシートの可視セル部分のみに「名前の定義」を設定する方法を教えてください。 「名前の定義」で設定した範囲をACCESSでインポートしたいと考えているのですが、 可視セルのみに名前の定義を付ける方法が分かりません。 よろしくお願いします。

  • Excelで一つ下のセルを関数で、かつ可視セルで

    Excelの関数についての質問です。 一つ下のセルを関数で参照したいのですが、 その場合、フィルターで非表示となったセルも参照されてしまいます。 ※OFFSET関数だとそうなります。 そこで質問です。 可視セル限定で一つ下のセルを参照する方法はありませんでしょうか。 よろしくお願いします。

  • G→可視セル→コピー貼り付けがうまくいかない

    お世話になります。 エクセル2007でよく使う「可視セルのみコピーし貼り付け」がうまくいきません。 既存ブックの印刷したい行以外は非表示にし、 印刷したい範囲を選択してから 「ジャンプ→可視セル選択→コピー」し、 別のブックを開きひとつだけセルを選択し「貼り付け」すると、 非表示行まですっかり貼り付いてしまいます。 「形式を選択して貼り付け」にすると、 「ワークシートオブジェクト」とか「図」とか 「ビットマップ」とか書いてある見覚えのないウィンドウが開きます。わからないまま「ワークシートオブジェクト」でOKすると 「貼り付けられませんでした」と言われます。 目的は、不要なところを除き必要なところだけ 紙をケチって詰め詰めで印刷したい、ということです。 どなたかご指導お願いします。

  • マクロで可視セルのみの削除

    A行に数字を入れ、B行にA行同列セルの数字に対して 数値を返す数式を入れています。 B行は非表示にしています。 (C・D行、E・F行・・・とも同じ処理) 数字を入力する範囲(A、C、E・・・)を選択し、 入力されている数字を消去するようマクロを組みました。 (範囲選択→ツールの編集→ジャンプ→可視セルを選択後、Delete) これはうまく作動します。 が、数式が壊れるのを防ぐ為、念には念を・・・と、 入力範囲部分はセルの書式設定で保護ロックを外し、 シートを保護しました。 そうすると、保護されているからだめ!と エラーが出て、マクロが作動しません。 (可視セル選択部分にデバッグがでます。) ・非表示のセルがある ・一部を除きシートを保護している 状態で、マクロで可視セルのみ削除することは不可能なんでしょうか? 宜しくお願いします。

専門家に質問してみよう