こんにちは!意味のある写真でダッシュボードを揺さぶろうとしています。または、セルのExcelVBAに画像を挿入しようとしています。写真をExcelセルに挿入することはできませんが、Excelセルに収まるようにサイズを変更することはできます。

手動で行うと時間がかかり、煩わしいです。では、解決策は何ですか?あなたはそれを正しく推測しました、VBAマクロ。今すぐコーディングします。

以下は、フォルダからセルまたは特定の範囲に画像を挿入するためのexcelvbaコードです。 Alt + F11を押し、モジュールを挿入して、このコードをコピーします。

心配しないでください。必要に応じて変更できるように、以下で説明します。

セルまたは指定された範囲にVBAを使用してExcelセルに画像を挿入する[width = “100%”、cols = “100%”、]

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

説明:

パート1:

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

上記のサブルーチンは、2つの引数のみを取るメインサブルーチンInsertPictureInRangeを呼び出すだけです。最初に画像ファイルのアドレスとその名前、2番目に画像をExcelに挿入する範囲。

パート2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

これは、指定された範囲に合うように画像を挿入およびサイズ変更するメインサブルーチンです。それを掘り下げましょう。

Dim p As Object, t As Double, l As Double, w As Double, h As Double

この行は、必要な変数宣言にすぎません。注pオブジェクト変数として。この変数は私たちの写真を保持します。

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Activesheetがワークシートであるかどうかをチェックします。そうでない場合は、コードをすぐに終了し、何も起こりません。

If Dir(PictureFileName) = "" Then Exit Sub

写真をExcelセルに挿入するための画像のアドレスを指定したことを確認してください。あなたがそれを提供しなかった場合、それはすぐに終了し、何も起こりません。

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

さて、これが最も重要な行です。この行では、Activesheetの挿入機能を使用しています。画像オブジェクトを作成し、前に宣言したオブジェクトpに配置します。 pを使用すると、画像の幅と長さを簡単に調整できます。

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left - .Left

h = .Offset(.Rows.Count, 0).Top - .Top

End With

このセグメントは、指定された範囲から長さ、幅、上、左を取得します。

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

この部分は、画像を指定された範囲に調整します。そして、それは完了です。最後に、何も設定せずに解放します。

Set p = Nothing

この行はメモリを解放します。

このコードは、Excel 2016、Excel 2013、Excel 2010、およびExcel2007で機能します。

ここでは、範囲A1:C10に画像を挿入したいと思いました。これを行うために、[width = “100%”、cols = “100%”、]以下のコードを変更しました

Sub TestInsertPictureInRange()InsertPictureInRange “*C:\Users\Manish

Singh\Downloads\biker.jpg”, _Range(“A1:C10*”)

End Sub

そして、これは私が得たものです。まさに私が欲しかったもの。

pasted image 0 (1)

だから、ええ。このコードを使用して、Excelのセルまたは範囲に画像を挿入します。コードをいじってみてください。さまざまな形式、奇妙な範囲を挿入して、何が起こるかを確認してください。ご不明な点がある場合や課題に直面している場合は、以下のコメントセクションを使用して質問してください。

ファイルをダウンロード

`link:/wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Microsoft Excel2016でVBAを使用して画像を挿入]

人気の記事:

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]

link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]