戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
マクロでエクセルシートに一枚づつ画像を貼りたい

    [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のコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G