• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで、複数の写真をセルの中央に)

エクセルのマクロで複数の写真をセルの中央に移動する方法

このQ&Aのポイント
  • エクセルのマクロを使用して、複数の写真を指定したセルの中央に移動する方法を紹介します。
  • まず、指定したセルに写真を貼り付けます。その後、マクロを実行することで、写真をセルの中央に移動させることができます。
  • 具体的なコードとして、指定したセルの左上のアドレスを変更することで、異なるセルに対しても同様の操作を行うことができます。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

>この中の > Const adr As String = "A26" '処理対象セルの左上のアドレス > という箇所を、for-next関数でたとえばi=1からi=500とし > セル番地Biで実行したらいいと思うのですが。 それでも問題ないです。 あとは実践ですね、がんばりましょう。 とりあえず、Constを消して、     For i = 1 To ActiveSheet.Pictures.Count         Set rng = Cells(i, 2)         ~処理~     Next で良いんじゃないかなと思います(未検証ですが)。 無駄を省きたいなら考え方をちょっとだけ変えて 「全ての写真において、写真があるセル番地の中心に」とします。 ご提示のコードを活かすなら Sub sample() Dim p As Object Dim trg As Range     For Each p In ActiveSheet.Pictures         Set trg = Range(p.TopLeftCell.Address)         If Not trg Is Nothing Then             If p.Width < trg.Width Then                 p.Left = trg.Left + (trg.Width - p.Width) / 2             End If             If p.Height < trg.Height Then                 p.Top = trg.Top + (trg.Height - p.Height) / 2             End If         End If     Next p End Sub こんな感じ。 ただしこれは 「全ての写真が目的のセル番地(Bnセルでしたっけ)内に正しく収まっている場合」 に限ります。 これが 「シート内にバラバラに配置されている複数の写真を  B列各行に1枚ずつ整然と配置したい」 のであれば Sub sample2() Dim p As Object Dim rng, trg As Range     For i = 1 To ActiveSheet.Pictures.Count         Set p = ActiveSheet.Pictures(i)         Set trg = Cells(i, 2)         If Not trg Is Nothing Then             If p.Width < trg.Width Then                 p.Left = trg.Left + (trg.Width - p.Width) / 2             Else                 p.Left = trg.Left             End If             If p.Height < trg.Height Then                 p.Top = trg.Top + (trg.Height - p.Height) / 2             Else                 p.Top = trg.Top             End If         End If     Next End Sub まだ贅肉が多いですが、動くと思いますよ。 写真の幅・高さがセルより大きい場合はセルの左・上に合うように加筆しています。

bub56170
質問者

お礼

tsubuyukiさま ありがとうございました。最終的には2つ目の方法で処理を進めています。3つ目も私には目からうろこのコードであり、 土日にゆっくりと研究させていただきます。 実践を積んで、少しでもスキル向上していきたいと思います。 ありがとうございました。

関連するQ&A