- ベストアンサー
エクセルでのオブジェクト選択について
エクセル2003で、線を引いてその後、調整しようと該当の線を選択すると、どうも始点付近に画面が飛びますが、これを終点付近とか、選択クリックした位置で画面が飛ばないようにはならないのでしょうか? 拡大して調整しようとすると、画面が飛んで、スクロールで戻って調整、また・・・と繰り返すのが不便なものですから。 宜しくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >マクロは使わせて頂きましたが、結局ズームはできても線を選択したら終点が画面の外にでてしまい、同じことでした。 調整方法はありますが、このままやっていても、私には解決の目処が立ちません。 一応、このmyCol/myRow の値を、実際の数値に入れてあげて調整することは可能です。 ただし、整数です。 .ScrollColumn = rng.Column - myCol .ScrollColumn = rng.Column + myCol .ScrollRow = rng.Row - Int(myRow / 2) すくなくとも、画面に終点が出る以上は、その根拠となるものが見出せれば、私は可能だと思います。少なくとも、終わりの列を探しているのですから、「同じだ」と、言われるようなことは、私には想像つきません。 なぜ、ラインの終わりの列に画面が行かないのか、私には見当がつきません。特殊な状態になっているとしか思えません。非表示列があるとか。 いずれにしても、結果としては、線(Line)から、行き過ぎて、左にあるとか、右にあるようにも思えるのですが、この先に、ある程度の情報があれば、こちらも考えますが、「同じ」という意味は、そのマクロは使っても意味がないというメッセージだと思います。こちらも、マクロの押し売りするつもりがないので、これ以上は辞めておこうと思います。 仮に、直しても、全体的に特殊な状況になっていると、内容が変わると、うまくいくとは限りません。 私のほうも、セル幅をいろいろ変えてみたり、非常に大きくとったり、ウィンドウ枠を変えてみたり、結合セルで、キャンバス状態にしてみたり繰り返してみたが、線(Line)の右端が画面から切れて見えなくなってしまうような現象は再現できません。何度やっても、画面の中に押さえられています。 おそらく、実際のご質問者さんのPCの中で、ご質問者さんが、使っている作業そのものをみなければ、私は解決できないような気がします。いずれにしても、これ以上は、残念ながら、解決の目処は立たないように思います。いままで、私の経験では、こういうときに、特別な例ですが、機種固有や他の問題を抱えていたことがありますので、あまり、私のマクロのコード上の杓子定規な考え方を主張しても、結果的に解決しないことが多いようです。 私なら、たぶん、最初から大きくして、ズームと標準を行き来しないようにするか、また、「名前ボックス」や「ジャンプ」を使って作業するだろうと思います。 お手間を取らせてすみません。
その他の回答 (7)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #5の回答者です。 お礼の文面では、私の内容は、最初の部分だけ読まれただけなのか、それとも、マクロは、必要ないような内容にも読めます。 こちらとしては、どうしてもマクロをお勧めするというわけではないのですが、解決案として、こういう方法しか思いつきませんでした。#5のマクロでも、調整すれば、本来は、それで生きるはずです。こういう方法が気に入らなければ、どうか無視してください。ご希望のようになっているはずです。ただし、オートシェイプのライン(線)のみしか適用されません。 >A1からAHまでのセルを結合しています。 今、以下のマクロを試して見ましたが、列自体が残っている限りは、成功はしています。 ただ、そのように広範囲に結合セルを使うと、Excelのバージョンによってバグが残っているので、コピー&ペーストで際に、思わぬ場所で、トラブルを呼ぶことがあります。それは気をつけたほうがよいです。 ------------------------------------------------------------- 以下のマクロは、ショートカットキーを付けてあげると良いです。 最初に、オートシェイプのラインを選択して、ショートカットキーを実行すれば、画面のズームの割合を聞いてきますので、それで、数字を入れればよいです。 メニューから、マクロ-マクロ-オプション ショートカットキー ---------------------------------- '標準モジュール ----------------------------------- Sub LineWindowZoom() 'オーシェイプのラインの右端にあわせた、ズームのマクロ Dim obj As Object Dim rng As Range Dim ret As Variant Dim myRate As Integer Dim myCol As Integer Dim myRow As Long If TypeName(Selection) <> "Line" Then MsgBox "オートシェイプのラインを選択してください。" Exit Sub Else ret = Application.InputBox("ズームの数字を入れてください。100~400", Type:=1) If IsNumeric(ret) Then If ret < 25 Then Exit Sub ElseIf ret <= 400 Then myRate = ret Else myRate = 100 End If ActiveWindow.Zoom = myRate Set obj = Selection Set rng = obj.BottomRightCell With ActiveWindow myCol = Int(.VisibleRange.Columns.Count / 2) myRow = Int(.VisibleRange.Rows.Count / 2) If rng.Column > myCol Then .ScrollColumn = rng.Column - myCol Else .ScrollColumn = rng.Column + myCol End If If rng.Row > myRow Then .ScrollRow = rng.Row - Int(myRow / 2) End If End With End If End If Set obj = Nothing Set rng = Nothing End Sub
お礼
ありがとうございます。 言葉足らずで申し訳ありません。 マクロは使わせて頂きましたが、結局ズームはできても線を選択したら終点が画面の外にでてしまい、同じことでした。 いろいろお手数をおかけしてすみません。
- assault852
- ベストアンサー率48% (1364/2797)
回答1の者です。 私の回答が不快だったのならば謝ります。 ただし、他意は一切ありません。 以前のバージョンからそういう状態であることを認識していますので、そういう回答をしたまでです。 もう一度言わせて頂くと、おそらくそういう仕様なのでどうしようもないと思います。 大変失礼しました。
お礼
ありがとうございます。 決して不快ということではありません。 私こそ、お礼も書き込まず失礼しました。 お気遣いいただき申し訳ありませんでした。 この動きがエクセル2003の仕様であるならば、通常操作では我慢するしかないようですね。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #3さんのご説明でやっと意味が分かりました。 今まで、私は、そういう経験がなかったですね。 本来、一体なんのために、ズームするのかなって思います。 こういうオートシェイプの線は、シフトキーを押しながら使えば、複数の線の接線は、ぴったりと合いますし、また、コントロールキーを押しながら線を引けば、セルの枠線に合いますので、ズームを使ったことがありません。 それと、今回の場合は、単に、ズーム時のWindowの位置のバランスだけの問題ですよね。だから、本来は、その位置のバランスにさえ気を使えばよいとは思うのですが、面倒だったら、以下のような簡単なマクロで、解決できるとは思います。 こういう安直な回答に不満を感じるかもしれませんが、そのときは、話のタネのひとつとしてお許しください。完成したら、このマクロは削除してしまえばよいです。あとくされは残りません。 Offset(-4, -5) で、位置の調整は聞きます。 以下は、ダブルクリックですが、なるべく、Z5 にあるものでしたら、Z4やZ6 までとか、近場をクリックしてくださいね。そうでないと、拡大したときに、見失います。 本来は、Windows 画面を調整するマクロのほうが優れているのですが、その場しのぎで、とりあえず、こちらのほうで試してみてください。 ------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True 'ズームの200 と100 を行き来する If ActiveWindow.Zoom = 200 Then ActiveWindow.Zoom = 100 Else ActiveWindow.Zoom = 200 End If On Error Resume Next Application.Goto Target.Offset(-4, -5), True Application.Goto Target End Sub シート・マクロの取り付け方: マクロを実行しようとするワークシートのシートタブ(下部のSheet1,Sheet2 ...)を右クリックすると、「コードの表示(V)」というメニューがありますから、それをクリックしてください。そして、開いた画面に、上記のコードを貼り付けて、Alt + Q で閉じれば設定は完了です。 後は、ダブルクリックで、ズームと標準を繰り返します。
お礼
ありがとうございます。 私の状況説明がかなり足りなかったように思います。 1.A1からAHまでのセルを結合しています。(A4縦の横幅サイズくらいの設定にしてます) ですから、セルに合せて・・・はできない(必要ない)のです。 2.そこに、けっこう大きく(長く)線、などを多く引いています。 3.線の長さの調整がけっこうあります。(修正作業です。) 4.よって、どうしても拡大(MAX400倍まで使ってます)する必要があり、終点位置の変更のため該当線をクリックすると画面が始点付近にいってしまうため、修正したい終点位置が画面から外れてしまい、スクロールで終点位置までいちいち戻らなければならのです。 上記の状況で非常に不便に感じているので、みなさんのお知恵を拝借したくお願いしました。 ご理解頂けましたでしょうか?
- mshr1962
- ベストアンサー率39% (7417/18945)
「表示」「ズーム」「選択範囲をズーム」では駄目ですか?
お礼
ありがとうございます。 ANo.3さんのお礼のところでも述べましたが、画面移動します。 なお、たんに、セルの選択ということではあまり意味がないのです。 何故かと申しますと、一行分のセルを結合していますので、エクセル を使用しながら、実際はセルの意味をなくしているのです。理由は、あしからず。
- onlyrom
- ベストアンサー率59% (228/384)
>線を引いて この線はオートシェイプですよね。 例えば、線が、A5~Z5 まで引かれていて Z列が真ん中辺りに表示されているとします ということは線の終点が画面の真ん中あたりということ。 そこで、セルZ4をクリックして、ズームボックスを200%のします。 線の終点あたりが拡大されたと思いますが。。 要するにズームボックスの数値を変化させると アクティブセルの辺りが拡大縮小されるということです。
お礼
ありがとうございます。 たしかに、おっしゃるとおりですが、そこでオートシェイプを調整しようとし、該当の線を選択(クリック)するとA5付近に画面が移動してしまいます。
- onlyrom
- ベストアンサー率59% (228/384)
画面を拡大すると飛ぶ、ということですね? 1)線は選択しないで、表示しておきたい付近のセルをクリックする 2)画面を拡大する 3)線を選択する これでどうでしょう。 外しましたらご容赦願います。
お礼
ありがとうございま。 結果同じですね。 私のやり方がいけないのでしょうか?
- assault852
- ベストアンサー率48% (1364/2797)
ああ、確かにそうですね。 でも無理じゃないかと思います。 やはり、たかがExcelなんで。
お礼
お礼が遅れまして申し訳ありません。 理解していただけるかどうかはわかりませんが。 >特殊な状態になっているとしか思えません。 その通りだと思います。以下、新たに確認した状況です。 私の報告した現象は、 1.オートシェイプの線の両端が画面に表示しきれない場合、水平及び垂直の直線のみを操作(スクロールにて該当端を画面上に表示し伸ばしたり、縮めたり)する時、瞬間的に画面移動(操作しようとする線の端が画面の外に外れる)が発生する。 2.がしかし、僅かでも、斜めの直線だと画面移動しない。 3.そして、始点、終点に関わらず垂直線だと必ず上に(行番号1の方)、水平線だと必ず左に(列Aの方)画面移動する。逆に言うと上の端や、左端を操作したら画面移動せず問題なく操作できる。 以上のことが分かりました。(遅すぎますね、且つ何の回答にもなっていなくてすみません) 蛇足ですが、OpenOfficeの表計算だとこのような状況にはなりませんでした。よって、作図だけはこちらで作ろうかなと... 長文、乱文ですみません。