No.8ベストアンサー
- 回答日時:
こんにちは。
>マクロは使わせて頂きましたが、結局ズームはできても線を選択したら終点が画面の外にでてしまい、同じことでした。
調整方法はありますが、このままやっていても、私には解決の目処が立ちません。
一応、このmyCol/myRow の値を、実際の数値に入れてあげて調整することは可能です。
ただし、整数です。
.ScrollColumn = rng.Column - myCol
.ScrollColumn = rng.Column + myCol
.ScrollRow = rng.Row - Int(myRow / 2)
すくなくとも、画面に終点が出る以上は、その根拠となるものが見出せれば、私は可能だと思います。少なくとも、終わりの列を探しているのですから、「同じだ」と、言われるようなことは、私には想像つきません。
なぜ、ラインの終わりの列に画面が行かないのか、私には見当がつきません。特殊な状態になっているとしか思えません。非表示列があるとか。
いずれにしても、結果としては、線(Line)から、行き過ぎて、左にあるとか、右にあるようにも思えるのですが、この先に、ある程度の情報があれば、こちらも考えますが、「同じ」という意味は、そのマクロは使っても意味がないというメッセージだと思います。こちらも、マクロの押し売りするつもりがないので、これ以上は辞めておこうと思います。
仮に、直しても、全体的に特殊な状況になっていると、内容が変わると、うまくいくとは限りません。
私のほうも、セル幅をいろいろ変えてみたり、非常に大きくとったり、ウィンドウ枠を変えてみたり、結合セルで、キャンバス状態にしてみたり繰り返してみたが、線(Line)の右端が画面から切れて見えなくなってしまうような現象は再現できません。何度やっても、画面の中に押さえられています。
おそらく、実際のご質問者さんのPCの中で、ご質問者さんが、使っている作業そのものをみなければ、私は解決できないような気がします。いずれにしても、これ以上は、残念ながら、解決の目処は立たないように思います。いままで、私の経験では、こういうときに、特別な例ですが、機種固有や他の問題を抱えていたことがありますので、あまり、私のマクロのコード上の杓子定規な考え方を主張しても、結果的に解決しないことが多いようです。
私なら、たぶん、最初から大きくして、ズームと標準を行き来しないようにするか、また、「名前ボックス」や「ジャンプ」を使って作業するだろうと思います。
お手間を取らせてすみません。
お礼が遅れまして申し訳ありません。
理解していただけるかどうかはわかりませんが。
>特殊な状態になっているとしか思えません。
その通りだと思います。以下、新たに確認した状況です。
私の報告した現象は、
1.オートシェイプの線の両端が画面に表示しきれない場合、水平及び垂直の直線のみを操作(スクロールにて該当端を画面上に表示し伸ばしたり、縮めたり)する時、瞬間的に画面移動(操作しようとする線の端が画面の外に外れる)が発生する。
2.がしかし、僅かでも、斜めの直線だと画面移動しない。
3.そして、始点、終点に関わらず垂直線だと必ず上に(行番号1の方)、水平線だと必ず左に(列Aの方)画面移動する。逆に言うと上の端や、左端を操作したら画面移動せず問題なく操作できる。
以上のことが分かりました。(遅すぎますね、且つ何の回答にもなっていなくてすみません)
蛇足ですが、OpenOfficeの表計算だとこのような状況にはなりませんでした。よって、作図だけはこちらで作ろうかなと...
長文、乱文ですみません。
No.7
- 回答日時:
こんばんは。
#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
ありがとうございます。
言葉足らずで申し訳ありません。
マクロは使わせて頂きましたが、結局ズームはできても線を選択したら終点が画面の外にでてしまい、同じことでした。
いろいろお手数をおかけしてすみません。
No.6
- 回答日時:
回答1の者です。
私の回答が不快だったのならば謝ります。
ただし、他意は一切ありません。
以前のバージョンからそういう状態であることを認識していますので、そういう回答をしたまでです。
もう一度言わせて頂くと、おそらくそういう仕様なのでどうしようもないと思います。
大変失礼しました。
ありがとうございます。
決して不快ということではありません。
私こそ、お礼も書き込まず失礼しました。
お気遣いいただき申し訳ありませんでした。
この動きがエクセル2003の仕様であるならば、通常操作では我慢するしかないようですね。
No.5
- 回答日時:
こんばんは。
#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倍まで使ってます)する必要があり、終点位置の変更のため該当線をクリックすると画面が始点付近にいってしまうため、修正したい終点位置が画面から外れてしまい、スクロールで終点位置までいちいち戻らなければならのです。
上記の状況で非常に不便に感じているので、みなさんのお知恵を拝借したくお願いしました。
ご理解頂けましたでしょうか?
No.3
- 回答日時:
>線を引いて
この線はオートシェイプですよね。
例えば、線が、A5~Z5 まで引かれていて
Z列が真ん中辺りに表示されているとします
ということは線の終点が画面の真ん中あたりということ。
そこで、セルZ4をクリックして、ズームボックスを200%のします。
線の終点あたりが拡大されたと思いますが。。
要するにズームボックスの数値を変化させると
アクティブセルの辺りが拡大縮小されるということです。
ありがとうございます。
たしかに、おっしゃるとおりですが、そこでオートシェイプを調整しようとし、該当の線を選択(クリック)するとA5付近に画面が移動してしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 区切り位置指定ウィザードの選択データプレビューで全列を指定する方法 お世話になります。E 1 2023/01/17 16:36
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- ノートパソコン デュアルディスプレイの拡張と複製の違い。この場合はどっち?」 6 2022/09/20 16:54
- 所得税 e-tax 更正の請求について e-taxにて更正の請求を入力中なのですがわからない部分があるので教 2 2023/05/03 11:48
- Windows 10 Windows10でセーフモードが出来ません。 2 2022/04/22 23:37
- Excel(エクセル) エクセルからビジオのリンク貼り付け 1 2023/03/30 17:51
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- 中途・キャリア 【転職】役員面接の日程調整について 3 2022/04/19 17:20
- PowerPoint(パワーポイント) 2016EXCEL→2016PowerPointにコピペすると図形がゆがみます 5 2022/03/31 11:44
- Visual Basic(VBA) 起動中のアプリ、ソフトの取得 3 2022/12/28 11:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
ExcelのVBA。public変数の値が...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
サクラエディタ・マクロ → VSCo...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルに張り付けた写真のフ...
-
エクセルのマクロについて教え...
-
ユーザーフォームを起動しなが...
-
エクセルのマクロについて教え...
-
VBA アドインについて お詳しい...
-
VBA初心者 Ctrl+での操作、ボタ...
-
特定文字のある行の前に空白行...
-
2つのマクロでチェックボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報