マクロでエクセルシートに一枚づつ画像を貼りたい | |
---|---|
[194761] マクロでエクセルシートに一枚づつ画像を貼りたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ 結城 -(2022/03/02(20:55)) □U R L/ 作業環境 win10 office最新版 エクセルシートに一枚づつ画像を貼りたいのです。 動作としては、 @ダイヤログで画像ファイルを選ぶ A画像ファイル内のbmp画像全3枚を (ここでは3枚としますが枚数固定ではありません。最大50枚ぐらいです。) Bすでに作成してあるエクセルの3つのシートに、画像を一枚づつ挿入する ★画像とシートの動き★ 画像フォルダの一番上の画像1は、アクティブシートに挿入。 アクティブシートの右隣に次の画像2が挿入。 画像3が一番右側、末尾のシートになる。 D挿入の際、シートA15セルに挿入した画像の名前を表示させる E画像は、A16セルに高さ10のサイズ(縦横比を固定)、画像のリンクは切れている状態で挿入する という動きにしたいのですが、 Bからうまくいきません。 作成済のシートの、左→右(末尾へ向かって)で躓いております。 ご教授頂けますようお願い致します。 |
[194762] Re[1]: マクロでエクセルシートに一枚づつ画像を貼りたい- ■記事引用/メール受信=OFF■ □投稿者/ ヘンリー -(2022/03/03(11:26)) □U R L/ >作成済のシートの、左→右(末尾へ向かって)で躓いております。 WorksheetsコレクションのWorksheetオブジェクトをインデックスで指定すればできると思います 左から右に向かって Worksheets(1)、Worksheet(2)… |
[194767] Re[2]: マクロでエクセルシートに一枚づつ画像を貼りたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ どすん -(2022/03/07(19:13)) □U R L/ Sub 画像の貼り付け() Dim myFile As Variant Dim f As Variant Dim FileName Dim cnt As Long Dim myShape As Shape myFile = Application.GetOpenFilename("BMPファイル,*.bmp", MultiSelect:=True) cnt = 1 If IsArray(myFile) Then For Each f In myFile If cnt > 3 Then Exit For FileName = Split(f, "\") Worksheets(cnt).Range("A15") = FileName(UBound(FileName)) Set myShape = Worksheets(cnt).Shapes.AddPicture( _ FileName:=f, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=Worksheets(cnt).Range("A16").Left, _ Top:=Worksheets(cnt).Range("A16").Top, _ Width:=-1, _ Height:=-1) With myShape .LockAspectRatio = msoTrue ' 縦横比の固定 .Height = 10 End With cnt = cnt + 1 Next End If End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
このトピックに書きこむ |
---|