• ベストアンサー

Excelで挿入した図をセルの中央に配置したいのです。

Excel2000を利用しているのですけども先日保護したシートに図を挿入する方法をこちらで教えて頂きました。ありがとうございます。 今回は、その挿入した図をセルの中央に配置する方法をご教授お願したいのですが、よろしくお願いいたします。セルの書式設定で中央にしてもできませんでした。セルを保護しているからでしょうか?それとも全く検討違いの操作をしているのでしょうか。 下記マクロにその操作を追加する場合のマクロも教えて頂ければ大変助かります。 ActiveSheet.Unprotect Application.Dialogs(xlDialogInsertPicture).Show ActiveSheet.Protect 以上宜しく御願い致します。

  • kaito7
  • お礼率82% (139/168)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

どこで、どのようなエラーが出たのでしょうか? 1.("Picture 1")と("A1")の部分は利用しているExcelの状態に合わせて変更する必要があります。 Set shp図 = ActiveSheet.Shapes("Picture 1")でエラーの場合。 Picture 1の名称が違っている可能性が高いです。 マクロの記録で対象の図を移動してみてください。 マクロに図の名称が記録されますので、それを利用する必要があります。 2."位置移動のエラー" 図の大きさよりA1セルの大きさが小さいです。 入りきらないのでエラーです。A1セルを大きくするか、別のセルに変更してください。 3.いきなりエラーとなる。 Option Explicitを指定していませんか?

その他の回答 (2)

回答No.2

こんな感じでどうでしょうか? セルの中央に図が移動するかと思います。 図よりもセルが小さいと中央へ移動のしようがないのでエラーです。 Sub test()  ’図の位置取得 Set shp図 = ActiveSheet.Shapes("Picture 1") sng図Top = shp図.Top sng図Left = shp図.Left sng図Wid = shp図.Width sng図Hight = shp図.Height  ’セルの位置取得 Set rngセル = Range("A1") sngセルTop = rngセル.Top sngセルLeft = rngセル.Left sngセルWid = rngセル.Width sngセルHight = rngセル.Height '横の位置を決める。 横位置 = ((sngセルWid - sng図Wid) / 2) + sngセルLeft '縦の位置を決める。 縦位置 = ((sngセルHight - sng図Hight) / 2) + sngセルTop '図の位置を移動 If 横位置 > 0 And 縦位置 > 0 Then shp図.Left = 横位置 shp図.Top = 縦位置 Else MsgBox "位置移動のエラー" End If End Sub

kaito7
質問者

補足

こんばんは。 マクロに関しては、まだ勉強不足で無知に近いです。 上記内容をコピーしてマクロの部分に貼り付ければ使えるのでしょうか? 先ほど試してみたのですが、エラーが出てしまいました。 宜しくご教授くださいませ。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

見当違いの操作ですね。 セルの中に図が挿入されているのではなく、図はシートの上に置いてあるという感じです。 そして、実施したいのは  ・表示範囲の中央に図を配置したい  ・印刷範囲の中央に図を配置したい  ・大きなセルの中央に図を配置したい どれでしょうか。

kaito7
質問者

補足

こんばんは。 説明不足で申し訳ありません。 保護したシートの中に保護を外した”大きなセルがあります” その大きなセルの中央に挿入→図→ファイルから図を挿入したいのです。 昨日教えて頂いたマクロに書きくわえて使用したいと思っておりますので宜しくご教授お願いします。また、勉強不足なもんでマクロに関しては全く無知なものですから宜しくお願いいたします。

関連するQ&A

  • Excelで図をセルの中央に配置したいのです。

    保護したシートの中で保護を外した入力可能な大きなセルを作ってあります。そのセルの中央にJPEGの画像を挿入したいのですが、 ActiveSheet.Unprotect Application.Dialogs(xlDialogInsertPicture).Show ActiveSheet.Protect 上記マクロでは、セルの中央に配置できません。大きなセルの中央に画像を配置したいので上記マクロに書き加えるマクロを宜しくご指導くださいませ。

  • エクセル2007での図の挿入

    エクセル2007で作業をしています。 結合したセルの中に図(JPEG)を挿入したいのですが、結合したセルの中央に簡単に配置する方法はあるでしょうか? 左寄せ・右寄せは、枠に合わせればできるのですが、結合したセルの中央に合わせるのは大変で困っています。 ワードだと簡単に行の中央にできるのですが、エクセルでも同じようにできませんか? 図ツールの書式に「配置」と言う項目がありますが、これは使えませんでした。図のグループ化はしていません。 よろしくお願いします。

  • エクセル シートを保護してる時のセル結合

    エクセル2010を使用しています。 仕事の成果を一定の様式に記入してもらいます。書式、関数などを変更してもらいたくないのでシートに保護をかけました。 記入してもらうところだけセルのロックをはずし入力OKに設定しました。 しかし、シートの保護をかけるとロックをはずしててもセルの結合はできないんですね。なので、過去の質問からシートの保護がかかっていてもマクロですべての操作をしようできるというマクロ↓を参考にしてみました。 Sub seru() ActiveSheet.Protect UserInterFaceOnly:=True End Sub これと、セルを結合するマクロ↓を考えたのですが、どのように2つをくっつけたらいいのかがわかりません。 If TypeName(Selection)="Range"and Selection.Cells.Count>1 Then Selection.Merge ActiveSheet.Protect,AllowFormattingCells:=True End If 何かぬけているのかマクロを実行しても全く働いてくれません。 どうかよろしくです。

  • 図を挿入したときにマクロを実行したい

    図の書式を操作するマクロを作ったのですが、 挿入した図全てで、このマクロを実行するので 図を挿入したときにこのマクロを自動で実行したいのですが、 そのようなことはできるのでしょうか?

  • シートの保護のあとセルの列、幅を動かせるようにしたい

    EXCELマクロでシートの保護はするがセルの行、列の幅を動かせるにしたいです。 シート1,2,3があり、シート2,3のデータをシート1に集約する処理を 行っています。 シート1,2,3は事前にシートの保護を設定し、シートの保護の設定で、ロックされたセル範囲の選択、セル書式設定、列の書式設定、行の書式設定は許可しています。 シート1にシート2,3のデータを設定する時にActiveSheet.Unprotect Password:="password"でシートの保護を解除し、設定後にActiveSheet.Protect Password:="password"を再度保護しています。 空の状態のシート1はセルの行、幅を動かすことはできるのですが、上記のシートの保護を解除し、データ設定後、ActiveSheet.Protect Passwordコマンドで保護するとシート1のセルの行、幅を動かすことができなくなります。 シートの保護設定のやり方があるのでしょうか。 ご指導のほど、よろしくお願いいたします。

  • Excelで指定のセル上に図を配置したい

    Excel VBAで、シート上に図(四角形)を配置しようと思ってます。 イメージ的には、ALTキーを押しながらセルとぴったりフィットする図形(四角形)を作成したいのですが、マクロで生成したコードを見ると下記のように座標での指定になってます。 ActiveSheet.Shapes.AddShape(msoShapeRectangle, 102#, 210#, 76.5, 15#).Select もしこれをセルで指定する方法がありましたら教えて下さい。宜しくお願いします。

  • エクセルの画像貼り付けマクロについて

    Sub 画像挿入() ActiveSheet.Unprotect Password:="pass" Application.Dialogs(xlDialogInsertPicture).Show If Dialog1.Show Then With ActiveSheet.Pictures(1) .Top = Range("D31").Top .Left = Range("D31").Top Selection.ShapeRange.IncrementLeft -126# Selection.ShapeRange.IncrementTop 21.75 End With ActiveSheet.Protect Password:="pass", DrawingObjects:=True, _ contents:=True, UserInterfaceOnly:=True End Sub 現在、ダイアログ表示で画像を貼り付けられるように設定しています。 2点質問があり、お答えしていただければと思います。 まず、ダイアログ表示時にキャンセルを押した場合エラーメッセージが 出てきますので、キャンセルを押した場合にダイアログが閉じるように 設定する。 2点目が、間違えて貼り付けてしまった画像を削除する事。 保護をマクロの後にしますので、貼り付けてしまったらその画像を 選択して削除が出来ません。 削除ボタンで貼り付けた画像を削除したいのですがいい方法は ございますでしょうか? 緊急ですのでどなたかお答え頂けますでしょうか、よろしくお願い致します。

  • パスワードでシート保護したExcelへの画像貼り付けについて

    Excel2000でロックしていないセルに画像を貼り付けようと思います。 パスワードでシート保護しています。 VBAで次のように処理したら画像は貼り付けられました。 しかしパスワード入力を求められ、入力すると画像の挿入後シートは保護されたのですが、パスワードは解除になっています。 パスワード解除にならずに画像挿入できる方法をご教示ください。 さらに挿入後のサイズ変更のVBAも併せて教えて頂ければ助かります。 当方VBAについては全くの初心者です。 Sub 画像挿入()   With ActiveSheet     'シート保護解除     .Unprotect     '画像挿入ダイアログ表示-->画像を挿入     Application.Dialogs(xlDialogInsertPicture).Show     '画像が挿入されたら、保護のロック対象外に設定     If TypeName(Selection) = "Picture" Then       Selection.Locked = False     End If     'シート保護     .Protect DrawingObjects:=False, Contents:=True   End With End Sub

  • エクセルで図がある時のセルの挿入等

    エクセル内で、図や矢印を作成していて、セルの挿入や高さを変更すると、元の図や矢印が崩れてしまいます。 この図や矢印を崩すことなく、セルの挿入及び高さの変更をする方法を教えてください。 何卒宜しくお願いします。

  • マクロでエクセル2003以前のバージョンで動かない

    エクセル2003以前のバージョンのPCで、行挿入マクロを実行させるとコンパイルエラーと出て行挿入ができません。どのようなマクロ構文に変更すればよいでしょうか、ご教授下さい。 現在のマクロ構文は、次の通りです。よろしくお願いします。 Sub 行挿入() 'シート保護解除 ActiveSheet.Unprotect ' 行挿入 Macro m = Cells(15, 8).Formula Range("a15:j15").Insert copyorigin:=xlFormatFromRightOrBelow Cells(15, 8) = m 'シート保護 ActiveSheet.Protect End Sub

専門家に質問してみよう