• 締切済み

マクロ(VBA)で写真のサイズ変更

簡単に言えば、写真のサイズを変更するだけです。 ただ、1枚のシートに3枚写真を配置します。  ┌────┐┌─┐  │      │└─┘  │      │┌─┐  └────┘└─┘ このように写真のサイズを変更したいのです。 希望としては、大きい方で1つのマクロ、小さいほうで1つのマクロが良いです。 変更方法はシートに貼り付けた写真を選んで、一枚ずつの変更で構いません。 現在、写真を貼り付けるセルは結合して一枠にしている状態です。 いろいろ調べて試した結果、セルに合わせてサイズを変更すると写真がセルの結合を無視して張り付いてしまうので、それを考慮していただけると助かります。 当方、マクロに関しては不慣れなので、式を貼り付けるだけで良いようにしていただけると幸いです。

みんなの回答

回答No.1

普通にマクロの自動記録で大丈夫だと思いますが。 写真の上でマクロの記録開始→図の書式からサイズを数値で指定(あらかじめセルの大きさをみておきましょう)→記録終了です。 セルの大きさがいつも違うようであれば、セルの大きさを出して、それをサイズにしていするようなVBAを書く必要があるでしょうね。 セルの中に写真は入りません。Wordの表のようにはいきません。段落という概念はありません、表面にのっかります。セルの塗りつぶしで図を指定することもできません。 (セルの大きさをcmで簡単に計るには、四角の図形をセルの上に描いて大きさをみるといいですよ。)

yuma_osamura
質問者

お礼

回答ありがとうございます。 補足ですが、いろいろなマクロやVBAの式を使った際に、おそらくそういう式が組まれているのだと思うのですが、結合されていない1つのセルの大きさになるのです。 例えば、A1~C3までを結合して写真を貼り、試しに拾ってきたマクロを実行します。 そうすると、A1のセルの大きさで写真が貼られてしまうのです。 しかし、NO.1様がおっしゃるように、マクロを一つ一つ記録させるのもひとつの手ですね。 ひとつの参考として、また考えてみます。

関連するQ&A

  • オブジェクトに写真を貼るマクロについて

    こんにちは。 今仕事で写真の整理をしているのですが、量が多く、貼り付けてサイズを修正して 位置を調整して、とすごく時間がかかっています。 なのでエクセルのマクロを使ってみようと思うのですが、 オートシェイプの四角形のオブジェクトの枠に自動調節するマクロなどは あるのでしょうか? セルの枠に合わせるマクロはあるのですが・・・。 よろしくお願いします。

  • 複数の写真をエクセルに貼り付けられるマクロ

    エクセルで工事写真を貼り付けたいのですが、 マクロにより以下のことを実行したいです。 (1)写真貼り付け開始セルをダブルクリック (2)写真を複数枚選択 (3)写真をセルのサイズにリサイズ (4)ファイル名順に写真を貼り付け マクロを普通に実行して(2)~(4)を行うコードや 写真1枚に対して(1)(3)(4)ができるコードは見つかるのですが、 (1)~(4)ができるコードが見つかりません。 ちなみに、写真貼り付け用のセルは4列×12行分の結合セルで この形式が下に延々と続いています。 どなたか良い知恵をお貸しください

  • VBA シートセルの高さで写真の大きさを変更する

    よろしくお願いします。 シートセルの高さで写真の大きさ(高さ)を変更する。 Excel 2010のシートの結合セルに貼り付けてある写真を ユーザーフォームの、コマンドボタン(画像3枚_Click)(画像4枚_Click)で 3枚で1ページと、4枚で1ページに変更(セルの高さを変更する)したときに 貼り付けてある写真のサイズを セルの高さに合わせて、縮小または拡大する(縦横比は無視)する。 Private Sub 画像3枚_Click() Application.ScreenUpdating = False Unload Me Application.Visible = True Sheets("写真").ResetAllPageBreaks For i = 48 To 2000 Step 45 Sheets("写真").HPageBreaks.Add Before:=Cells(i, 1) Next Sheets("写真 ").Range("A1:A2000").RowHeight = 16.75 UserForm1.Show vbModeless Application.ScreenUpdating = True End Sub Private Sub 画像4枚_Click() Application.ScreenUpdating = False Application.Visible = True Sheets("写真").ResetAllPageBreaks For j = 63 To 2000 Step 60 Sheets("写真").HPageBreaks.Add Before:=Cells(j, 1) Next Sheets("写真").Range("A1:A2000").RowHeight = 14.25 Unload Me UserForm1.Show vbModeless Application.ScreenUpdating = True End Sub

  • ExcelでのVBAマクロについて

    質問させていただきます。 今現在、知人に設定していただいた一つのマクロを使って作業しています。 (そのマクロ自体は【選択したセル】と【直下のセル】のデータを「テキスト」として『前後のスペース』を削除し「セル内改行」で結合する。高さ調整後、1セル分上がる。というものです) 今までは1セルずつこれを使って結合し、セル内文章をまとめて一番上に持ち上げていました。しかし、今回私がやりたいのは1セルずつマクロを実行(ショートカットキーを使っていますが)するのが手間なので、5セル(上下方向にです)に対して一気に先ほどの既存マクロを適応する、という風にしたいのです。(選択セルと直下セルが結合されて選択セル内文章が増えるというやり方ですので、一番初めのポインタ位置は結合したいデータの下から二つ目でないといけません。その場合、この既存マクロを4回繰り返すマクロがほしいのです) 私自身、「記録」機能を使ったマクロしか組んだことがなかったのでVBAのほうをいじってみても知識不足でエラーばかり出てしまい、困ってしまいました。 とても説明がややこしく、分かりづらいとは思いますが、ご回答いただけると有り難いです。

  • セル値の変更でマクロを実行

    エクセルで棚卸表を作成しようとしています。各種類ごとに別々のシートに品名・単価が入ったマスターが登録してあります。(穀類シート、野菜シート、肉類シート、魚類シート、飲料シート ----) 印刷用のシートで特定のセルの値の変更によって(穀類、野菜、肉類など)、任意のシートを参照し表示する為、IFとVLOOKUP関数の組み合わせで初めは出来たですが、IFは1つの式では7個しか使用出来ず、シートの数が増えてきて、全てのシートを参照出来なくなりました。 そこで、マクロを使用して、特定のセルの値の変更のたびにマクロボタンを押し、式を変更したのですが、今までIF関数使用の時は、ある特定の値が変更されると瞬時に任意のシートを参照し表示されていたので、あまりスマートではありません。 特定のセルの値を変更したら、自動的にマクロが実行できる方法はありますか。それとも、もっと、良い方法があれば教えてください。 宜しければExcelファイルを見て頂きたいのですが。 お願いします。

  • エクセル2010でマクロ写真の貼り付けについて。

    こちらは、VBAからマクロから全くの初心者で困っています。 エクセル2010でA4 3枚貼りのフォーマットを作成しました。 このフォーマットにダブルクリックで写真を添付するマクロ を使いたいのですが、あちこちで探しているマクロを試しても うまく行きません。 ・写真の添付が出来ても、サイズが合わない。 ・プレビューで見ると写真が消える。 ・エクセル2003と互換性がない?  など、問題点が山積みでどうにもなりませんでした。 現在、フォーマットは出来ているので、どなたか 出来合いのものでも構わないので、マクロを教えて頂けないでしょうか? 写真が大量にありすぎて、つらいです。 ※フォーマットの写真を貼る部分は、結合しています。その結合している サイズで(元の写真の縦横比率は変わらずに)貼りたいです。 説明がへたくそで済みません・・・。

  • エクセルで同じ大きさの画像だけを並び替えるマクロ

    仕事でエクセルのシートに600枚ほどの写真画像を並べる作業をしなければなりません。 画像のサイズは2種類あり、  ・大きなサイズの画像(高さ5.73cm、幅7.51cm)が2枚、  ・小さなサイズの画像(高さ4.31cm、幅5.77cm)約50枚(以下n枚とします) を1つのsheetに配置します。 このとき、大きなサイズの画像はシートの右上に並べ、小さなサイズの画像は横4枚×縦(n/4)+1列に並べなければなりません。シート上での配置のイメージは下のような感じです。 ●:大きなサイズの画像 ☆:小さなサイズの画像 --:シートの範囲だと思ってください -----------------------------                  ●● ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ・ ・(途中省略) ・ ☆     ☆     ☆     ☆ ----------------------------- シート右上に配置されてある大きなサイズの画像配置を変更せずに、小さなサイズの画像のみを選択して横4枚の格子状に並べるにはどのようなマクロを組めばよいでしょうか? 過去の質問QNo.3864319を参考にしましたが、この方法では同じサイズの画像すべてを並べ替えているように設定されてあります。したがって、このマクロを実行すると、位置を変えたくない大きなサイズの画像も含めて格子状に並べ替えられてしまうため、困っています。並べ替えをしなければならない画像は3000枚くらいになると思われるので、このマクロを完成させてしまわないと作業が締め切りに間に合わないのでとっても困っています。 どうかよろしくお願いいたします。

  • 写真の一括サイズ変更

    サイズがバラバラの多くの写真データ(100枚ほど)を一括でサイズ変更したいのですがどうすればいいでしょうか? 縦横比は変えずに、例えば、5cm×5cmの枠の中におさまるぎりぎりまでサイズを変えたいのです。例えば20cm×25cmの写真であったら、4cm×5cmの写真にしたいのです。これを一括で行いたいのですが、写真のサイズがバラバラなため、どのようにすればいいか分かりません。ワード、エクセル、フォトショップなどのソフトを使ってどうにか一括でサイズ変更をしたいのですが、やり方を教えていただけたら幸いです。よろしくお願いします。

  • セルの設定をすべてクリアする方法

    Excelのシートでセルに入力している書式以外の、ウインドウ枠の固定やセルの配置、結合、フォントのサイズなどを初期状態にするには、どのようにしたらよいのでしょうか?

  • マクロがコードに記録されない

     今晩は、宜しくお願いします。  エクセルのシートに写真を取り込んで、「ある大きさにサイズ変更 ⇒ 同じ大きさのセルに 移動させる」を「マクロの記録 ⇒ マクロの終了」でマクロを作成し、別のシートでも実行させ たいのです。  実は、あるエクセルファイルでは、うまく実行出来たのですが、今日、同じやり方で、別のエ クセルファイルでマクロを作成しましたが、マクロが全く実行されません。  「マクロ ⇒ 編集」からマクロコードを見ても、あるサイズに変更するところのマクロコードが 記録されていません。  これは何故でしょうか。  また、「相対参照で記録」というオプションがありますが、これが何らかの関係があるのでしょ うか。  どうしても理由がわかりません、以上、宜しくお願いいたします。

専門家に質問してみよう