• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA シートセルの高さで写真の大きさを変更する)

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

このQ&Aのポイント
  • VBAを使用してExcelシートのセルの高さを変更し、写真のサイズを自動的に縮小または拡大する方法について教えてください。
  • Excel 2010のシートに結合セルで貼り付けられた写真を、VBAでセルの高さに合わせて縮小または拡大する方法を教えてください。
  • ユーザーフォームのコマンドボタンを使用して、Excelシートのセルの高さを変更し、貼り付けられた写真のサイズも自動的に調整する方法について教えてください。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

>実行しますと画像が消えてしまいます。 これで消えることはないでしょう Private Sub 画像3枚_Click() ・・・・・   Call Adjustsize(16.75 * 15)   Application.ScreenUpdating = True End Sub Private Sub 画像4枚_Click() ・・・・・   Call Adjustsize(14.25 * 15)   Application.ScreenUpdating = True End Sub 標準モジュールに Function Adjustsize(h As Single)   Dim myShap As Shape   For Each myShap In ActiveSheet.Shapes     If myShap.Type = 13 Then       With myShap         .LockAspectRatio = msoFalse         .Height = h       End With     End If   Next End Function

その他の回答 (4)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.5

回答No.4で「セルの高さに合わせて縮小または拡大する」 達成しませんか? >画像はC列にあります。 >1枚目はC4~W18 >2枚目はC20からW34 >3枚目はC36からW50 >For i = 48 To 2000 Step 45 何故3枚目の途中で改ページに? Stepは1枚当たり15行+1 なので 16×3枚で48になるのでは?

1211M
質問者

補足

watabe007 様 すみません。 ご指摘の通りです。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>実行しますと画像が消えてしまいます。 画像はA列の結合セル上に有ると仮定して処理を行っています。 実際は、どのセル上に有るのかわかりやすく示してください。

1211M
質問者

補足

watabe007 様 返事が遅くなりましてすみません。 A1からA3の行は表題です。 画像はC列にあります。 1枚目はC4~W18 2枚目はC20からW34 3枚目はC36からW50 ・・・・ となります。 よろしくお願いします。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

修正 標準モジュールに記述してください。 Function Adjustsize()   Dim myShap As Shape   For Each myShap In ActiveSheet.Shapes     If myShap.Type = 13 Then       With myShap         .LockAspectRatio = msoFalse         .Top = .TopLeftCell.MergeArea.Top         .Left = .TopLeftCell.MergeArea.Left         .Width = .TopLeftCell.MergeArea.Width         .Height = .TopLeftCell.MergeArea.Height       End With     End If   Next End Function

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

Private Sub 画像3枚_Click() ・・・・・ ・・・・・   Call Adjustsize   Application.ScreenUpdating = True End Sub Private Sub 画像4枚_Click() ・・・・・ ・・・・・   Call Adjustsize   Application.ScreenUpdating = True End Sub Function Adjustsize()   Dim myShap As Shape   For Each myShap In ActiveSheet.Shapes     If myShap.Type = 13 Then       With myShap         .LockAspectRatio = msoFalse         .Width = .TopLeftCell.MergeArea.Width         .Height = .TopLeftCell.MergeArea.Height       End With     End If   Next End Function

1211M
質問者

補足

watabe007 さん 早速の回答ありがとうございます。 実行しますと画像が消えてしまいます。 よろしくご教示お願いします

関連するQ&A

専門家に質問してみよう