• 締切済み

エクセルのグラフの位置と大きさの固定

エクセルのグラフを保存し、次回開いたときにグラフの大きさと位置が変わります。複数のグラフの大きさと位置をそろえても毎回開いた後、多少(目立つほど)のズレがあるのはどうしてでしょうか。大きさも位置も固定したいのですが、何か方法を教えてください。

みんなの回答

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.2

回答番号1の返信です。 VBAを使用する為次の要領で操作を行ってください。 キーボードの[ALT]を押しながら[F11]を押してMicrosoft Visual Basicを起動します。 メニュー「挿入」から「標準モジュール」を選択して下さい。 Option Explicitと書かれた白紙の画面が出ますので 先の回答に記述した「グラフ情報取得」をコピペし次の状態にしてください。 Option Explicit Sub グラフ情報取得() Dim G_Top, G_Left, G_Width, G_Height With ActiveSheet.Shapes("グラフ 1") G_Top = .Top G_Left = .Left G_Width = .Width G_Height = .Height End With MsgBox ("Top:" & G_Top & Chr(13) & "Left:" & G_Left & Chr(13) & "Width:" & G_Width & Chr(13) & "Height:" & G_Height) End Sub 次に画面左にある「プロジェクト-VBAProject」の中にある「ThisWorkbook」をWダブルクリックしてください。 (プロジェクト-VBAProjectが表示されていないときはキーボード[Ctrl]を押しながら[R]を押すと表示されます。) またOption Explicitと書かれた白紙の状態になります。 そこに先程同様以下のようにしてください。 Option Explicit Private Sub Workbook_Open() With ActiveSheet.Shapes("グラフ 1") .Top = 200 .Left = 100 .Width = 150 .Height = 400 End With End Sub 上記コードの中で"グラフ1"となっている部分は調べたいグラフの名前です。 とりあえずタスクバーよりエクセルの画面に戻ってください。 情報を取得したいグラフをクリックすると画面左の名前ボックスにグラフの名称が表示されます。 表示されたグラフの名称をドラッグで全選択しキーボード[Ctrl]を押しながら[C]を押してください。 タスクバーよりMicrosoft Visual Basicの画面に移動してください。 メニュー「編集」より「置換」を選択して下さい。 「検索する文字列」となっているところの右にあるコンボボックスに「グラフ1」(全て全角)と入力し「置換後の文字列」となっているところの右にあるコンボボックスをクリックしキーボード[CTRL]を押しながら[V]を押してください。 やや左下に「対象」となっている部分は「カレントプロジェクト」を選択し「すべて置換」をクリックしてください。 置換の画面を閉じていただき、Microsoft Visual Basicの画面も閉じてください。 エクセルの画面に戻ったらキーボード[ALT]を押しながら[F8]を押しマクロ名に「グラフ情報取得」となっていれば「実行」をクリックしてください。 (なっていなければその下にあると思うのでクリックで選択して下さい。) 以上の操作で情報を取得したいグラフの位置・大きさを示す項目が4つ表示されます。

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.1

その状態になった事が無い為正しい解答ではないかもしれませんが。 グラフの位置を揃えた時点で次のコードを実行。 Sub グラフ情報取得() Dim G_Top, G_Left, G_Width, G_Height With ActiveSheet.Shapes("グラフ 1") G_Top = .Top G_Left = .Left G_Width = .Width G_Height = .Height End With MsgBox ("Top:" & G_Top & Chr(13) & "Left:" & G_Left & Chr(13) & "Width:" & G_Width & Chr(13) & "Height:" & G_Height) End Sub グラフの位置・大きさが表示されますのでとりあえずメモします。 次に Private Sub Workbook_Open() With ActiveSheet.Shapes("グラフ 1") .Top = 200 .Left = 100 .Width = 150 .Height = 400 End With End Sub ↑の数字部分を先程のメモ書きに変える。 複数グラフがある場合はグラフ名を変更し情報を取得 Workbook_OpenにWITH~End Withを追加していく。 毎回グラフの大きさを変更しなければならない場合は 情報取得の応用で行けると思います。

toraban
質問者

補足

グラフ情報の取得というのは、どうしたら見られるのでしょうか?

関連するQ&A