こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのマクロについて

エクセル2010を使用しています。
図面中の図形描画で描かれた四角のオブジェクトを
結合したセル(G7:H8)の中央に移動させるマクロを組みました。
マクロを組み実行したところ、動作はOKなのですが、
保存の際エラーが発生し修復しますか?となってしまいます。
続行すると、
修復されたレコード: /xl/drawings/drawing1.xml パーツ内のスケッチ (図形描画)
と表示されます。

作成したマクロは以下の通りです。
おかしいところをご指摘ください。
よろしくお願いします。

Sub 打合図()
'
' 打合図 Macro
'
ActiveSheet.Shapes.Range(Array("AutoShape 12")).Select
Selection.Cut
Range("G7:H8").Select

ActiveSheet.Paste
With Selection
.Top = (Range("G9").Top - Range("G7").Top - .Height) / 2 + Range("G7").Top
.Left = (Range("I7").Left - Range("G7").Left - .Width) / 2 + Range("G7").Left
End With

Range("N8").Select
End Sub

投稿日時 - 2013-06-27 10:57:56

QNo.8151847

すぐに回答ほしいです

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

当方の環境(Win7SP1+Excel2010)ではエラーもなく保存できました。
コード中でAutoShape 12を削除しているので、今回コードが提示されていない部分で問題が起きているのかもしれません。
以下の様にカット&ペーストではなく、単なる移動にするとどうでしょう?

Sub 打合図()
  ActiveSheet.Shapes.Range(Array("AutoShape 12")).Select
  With Selection
    .Top = (Range("G9").Top - Range("G7").Top - .Height) / 2 + Range("G7").Top
    .Left = (Range("I7").Left - Range("G7").Left - .Width) / 2 + Range("G7").Left
  End With
  Range("N8").Select
End Sub

投稿日時 - 2013-06-27 11:30:18

お礼

ありがとうございます。
コピーペーストして実行しました。
動作は問題ないのですが、やはり保存の際
エラーが発生してしまいます。
AutoShape 12が何かに引っかかるのでしょうか。

投稿日時 - 2013-06-27 12:03:14

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

移動だけでも駄目でしたか。
と、なるとAutoShape12またはブック自体が破損している可能性も考えた方が良さそうですね。

次の方法を試してください。
1.Excelを起動。
2.「ファイルを開く」で今回のブックを選択し、<開く>ボタンの右にある▼を押してメニューを出す。
3.メニューから「開いて修復する」で、ブックを開き修復する。

一応、念のためにブックのコピーを取ってから試してください、

投稿日時 - 2013-06-27 13:15:27

お礼

マクロの登録を一度すべて消去し、
一旦xlsの拡張子で保存しました。
その後、再度マクロを貼り付けxls形式で
保存したところ上手くいきました。
動作も良好です。
xlsmの拡張子にするとなぜか調子が
悪いみたいです。
ありがとうございます。

投稿日時 - 2013-06-27 14:00:23

あなたにオススメの質問