エクセルで図や写真を挿入するときに任意のセルの大きさにワンクリックでぴったり収める方法を探しています。

わたしは、「挿入」→「図」→「ファイル」で図や写真を目的のセルに仮置きし、「図形の調整」→「グリッド」
で目的のセルの大きさにドラックしています。
数十枚ならこれでもいいのですが、100枚以上になると単純なドラックも面倒になってきます。
そんな訳で、いつもドラックしながら、これがワンクリックで合わせられればどんなに楽かと考えてます。
そこで質問なのですが、挿入後にワンクリックで目的のセル内に収める方法なんてあるのでしょうか。
マクロを組めば可能かもしれませんが、エクセル初心者なのでよくわかりません。
ご存知の方のお知恵をよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/04/25 17:27:17
  • 終了:2009/04/26 07:23:17

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/04/25 18:45:07

ポイント30pt

VBAで一括で図形をセルの大きさに合わせる方法を紹介します。


VBAについてはこちらを参考にしてみてください。

http://www.officepro.jp/excelvba/ini/index1.html

http://www.officepro.jp/excelvba/ini/index2.html

http://www.officepro.jp/excelvba/ini/index3.html


実行するとシート上の図形を図形の左上の角があるセルの大きさに合わせます。

図形を挿入して、所定の位置に移動させておけば、マクロを実行することで全てサイズ調整されます。


Sub Macro()
    Dim sp As Shape
    
    For Each sp In ActiveSheet.Shapes
        If sp.Type = msoPicture Then
            sp.LockAspectRatio = msoFalse
            sp.Top = sp.TopLeftCell.Top
            sp.Left = sp.TopLeftCell.Left
            sp.Height = sp.TopLeftCell.Height
            sp.Width = sp.TopLeftCell.Width
        End If
    Next
End Sub
id:qzm02423

SALINGERさん、コメントありがとうございます。

また、ご親切にVBAのサイトまで紹介いただきまして恐縮です。

そうですか、やっぱりマクロなんですね。

未知の領域ですが、これで楽が出来るならと、腹をくくった次第です。

作っていただいたマクロをどこにどう書き込めばいいのか、ご紹介くださった

サイトを熟読して挑戦してみます。

まずは、ありがとうございました。

2009/04/25 20:15:34

その他の回答(2件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/04/25 18:45:07ここでベストアンサー

ポイント30pt

VBAで一括で図形をセルの大きさに合わせる方法を紹介します。


VBAについてはこちらを参考にしてみてください。

http://www.officepro.jp/excelvba/ini/index1.html

http://www.officepro.jp/excelvba/ini/index2.html

http://www.officepro.jp/excelvba/ini/index3.html


実行するとシート上の図形を図形の左上の角があるセルの大きさに合わせます。

図形を挿入して、所定の位置に移動させておけば、マクロを実行することで全てサイズ調整されます。


Sub Macro()
    Dim sp As Shape
    
    For Each sp In ActiveSheet.Shapes
        If sp.Type = msoPicture Then
            sp.LockAspectRatio = msoFalse
            sp.Top = sp.TopLeftCell.Top
            sp.Left = sp.TopLeftCell.Left
            sp.Height = sp.TopLeftCell.Height
            sp.Width = sp.TopLeftCell.Width
        End If
    Next
End Sub
id:qzm02423

SALINGERさん、コメントありがとうございます。

また、ご親切にVBAのサイトまで紹介いただきまして恐縮です。

そうですか、やっぱりマクロなんですね。

未知の領域ですが、これで楽が出来るならと、腹をくくった次第です。

作っていただいたマクロをどこにどう書き込めばいいのか、ご紹介くださった

サイトを熟読して挑戦してみます。

まずは、ありがとうございました。

2009/04/25 20:15:34
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912009/04/25 18:59:58

ポイント30pt

各画像の左上が、それぞれフィットさせたいセル内になるように配置し、

下記を実行する形でどうでしょうか。

Sub FitPics()
    Dim pic As Shape
    For Each pic In ActiveSheet.Shapes
        With pic.TopLeftCell
            pic.LockAspectRatio = msoFalse
            pic.Top = .Top
            pic.Left = .Left
            pic.Width = .Width
            pic.Height = .Height
        End With
    Next
End Sub

を実行すると、各セルにフィットする処理を実行します。

縦横比は変わる仕様になっていますので、これを保持したいなど希望の仕様が異なる場合は

コメントにて対応しますので、コメントを有効にお願いいたします。

http://plaza.rakuten.co.jp/plaplanet2007/diary/200705100000/

id:qzm02423

Mookさん、コメントありがとうございます。SALINGERさんが教えてくださったマクロとは

少し違うようですが、基本の考え方は同じなのでしょうね。

今夜は、ちょっと酔っていますのであす挑戦してみます。

ありがとうございました。

また、お聞きすることがありましたらよろしくお願いいたします。

2009/04/25 20:37:21
id:memo77 No.3

memo77回答回数238ベストアンサー獲得回数202009/04/25 21:30:09

ポイント30pt

ワンクリックとはいきませんが、Altキーを押しながらマウスでドラッグ/サイズを変更すると、セルの枠ぴったりになります。

これではダメでしょうか?


http://www31.atwiki.jp/memo77/

id:qzm02423

先にコメントいただいたSALINGERさん、Mookさんのマクロはこれから挑戦するのですが、memo77さんが

教えてくださった方法はすぐに試しました。

memo77さんが教えてくださった方法は、わたしの一連の操作である「図形の調整」→「グリッド」を

簡単にしたものですね。たしかにワンクリックではありませんが、他人のPCでも同じような作業を

するときは非常に助かります。なるほど、こんな方法もあるんですね。

大変参考になりました。ありがとうございます。

2009/04/26 07:20:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません