Excelで図形にまたがるセルのサイズを変更すると図形が伸びたり縮んだりする





Excelで図形にまたがるセルのサイズを変更すると図形が伸びたり縮んだりする


関連記事
Excelのシート内の全図形・画像・イメージをファイルに保存する


もし、リボンに「開発」が表示されない場合はこちら
リボンに「開発」が無い場合、リボンに「開発」を追加する


Excelで画像を貼り付けたシートを編集している時、
図形にまたがるセルのサイズを変更した時
図形まで一緒に伸びたり縮んだりすることがあります。
図形のプロパティが「セルに合わせて移動やサイズ変更をする」の場合こうなります。


「伸びたり縮んだり」した図形を見て
いったいどれだけの人が
「Excelってホントに便利」とか
「Excelの図形最高」と思うのでしょう?

私個人としては「セルに合わせて移動するがサイズ変更はしない」以外使ったことが無いし
これが標準設定であって欲しいと思っています。
ところが、気を抜くとセルのサイズを変更した時に
間延びした図と対面することになります。

シート内の図形の個数が少しなら、1つ1つプロパティを変更してもそれほど大変ではないのですが
数が多いと結構大変です。
Office 2013では1度プロパティの変更をすると、設定変更の表示が右に表示するので少しは楽ですが。


そこで、マクロで簡単に図形のプロパティを「セルに合わせて移動するがサイズ変更はしない」に
設定するマクロを紹介します。
もし、リボンに「開発」が表示されない場合はこちら
リボンに「開発」が無い場合、リボンに「開発」を追加する

■マクロの登録方法

「開発」-「Visual Basic」を選択


「Visual Basic」画面が表示されます。


メニューの「挿入」、または、
または、プロジェクト(プロジェクト エクスプローラ 画面左側)の所で右クリックし
「挿入」-「標準モジュール」


コード入力が可能になります。


画面右側に以下のコードを貼り付け
Option Explicit

Sub figurePropertySet()
'msoAutoShape 1 オートシェイプ
'msoCallout 2 吹き出し 引き出し線
'msoChart 3 グラフ
'msoComment 4 コメント
'msoFreeform 5 フリーフォーム
'msoGroup 6 グループ化された図形
'msoEmbeddedOLEObject 7 埋め込みOLEオブジェクト
'msoFormControl 8 フォームコントロール
'msoLine 9 線
'msoLinkedOLEObject 10 リンクOLEオブジェクト
'msoLinkedPicture 11 リンクしている画像
'msoOLEControlObject 12 ActiveXコントロール
'msoPicture 13 画像
'msoPlaceholder 14 プレースホルダー
'msoTextEffect 15 テキスト効果
'msoMedia 16 メディア
'msoTextBox 17 テキストボックス
'msoScriptAnchor 18 スクリプトアンカー
'msoTable 19 表
'msoShapeTypeMixed -2 値の取得のみ可能です。
'他の状態の組み合わせを示します。
'msoDiagram 21 図表
'msoCanvas 20 キャンバス
'msoInk 22 インク
'msoInkComment 23 インクコメント
'msoSmartArt 24 スマートアート
'msoSlicer 25 スライサー

Dim figure As Shape

For Each figure In ActiveSheet.Shapes
If figure.Type <> msoOLEControlObject And figure.Type <> msoFormControl Then
' xlMoveAndSize セルに合わせて移動やサイズ変更をする
' xlMove セルに合わせて移動するがサイズ変更はしない
' xlFreeFloating セルに合わせて移動やサイズ変更をしない
figure.Placement = xlMove
End If
Next
End Sub

「figure.Placement = xlMove」の行を「figure.Placement = xlFreeFloating」に変更すれば
「セルに合わせて移動やサイズ変更をしない」にできます。

コードを貼り付けるとこんな感じになります。


■マクロの実行方法
Excelのウィンドウを表示します。

マクロ実行前の図形のプロパティは「セルに合わせて移動やサイズ変更をする」になっています。


「開発」-「マクロ」-「実行するマクロを選択」-「実行」


このシート内の全ての図形のプロパティが「セルに合わせて移動するがサイズ変更はしない」に変更されます。


※注意
図形の種類(ドロップ ダウンのリスト入力等)によっては実行時にエラーになります。
エラーの例
「実行時エラー '1004'
 アプリケーション定義またはオブジェクト定義のエラーです。」


■マクロ付きのExcelを保存について

Excel 2007以降の形式でマクロ付きのExcelブックを保存する場合は
ファイルの拡張子を「.xlsm」にします。
「.xlsx」で保存するとマクロは消えます。
スポンサーサイト
アクセスカウンタ
オンラインカウンター
現在の閲覧者数:
プロフィール

たっきー

Author:たっきー
たっきーのブログへようこそ!
パソコン・スマホを
より使いやすくするため奮闘中!
改造したり、root取ったり
色々やってます。

カテゴリ
最新記事
最新コメント
月別アーカイブ
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR