【マクロ基礎も解説!】一括で大量の画像をセルへ配置する方法について詳しく解説します!動画概要欄にコードあり

Поділитися
Вставка
  • Опубліковано 2 жов 2021
  • 【今回のコード】
    Option Explicit
    Sub 画像挿入()
    Dim shName As String: shName = "社員一覧" 'シート名を記述
    Dim folderName As String: folderName = "社員画像" 'フォルダ名を記述
    With Worksheets(shName)
    Dim lastRow As Long
    lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
    Dim i As Long
    For i = 2 To lastRow
    Dim id As String: id = .Cells(i, 1).Value
    .Rows(i).RowHeight = 70
    Dim myFileName As String: myFileName = Dir(ThisWorkbook.Path & "\" & folderName & "\*" & id & "*")
    If myFileName <> "" Then
    With .Pictures.Insert(ThisWorkbook.Path & "\" & folderName & "\" & myFileName)
    Const toClm As Long = 4 '画像を挿入は4列目
    .Top = Worksheets(shName).Cells(i, toClm).Top
    .Left = Worksheets(shName).Cells(i, toClm).Left
    .Height = Worksheets(shName).Cells(i, toClm).Height
    .Placement = xlMoveAndSize
    End With
    End If
    Next i
    End With
    End Sub
    ↑↑↑↑
    ここまで
    VBA超入門講座の動画
    • エクセル VBA マクロ超入門講座 一つの動...
    【動画目次】
    3:21 コードの使い方
    8:12 コード詳細解説開始
    9:10 変数について
    12:50 Withステートメント
    13:53 最終行取得(lastRow)
    16:34 繰返し・ループ処理(For~Next)
    20:40 画像ファイル名取得(Dir)
    22:47 Thisworkbook
    25:43 条件分岐(If)
    27:40 画像挿入(Pictures.Insert)
    31:51 まとめ
    【その他】
    メンタエクセル公式LINE@
    VBA無料講座はこちらより♪
    lin.ee/dVb2nKq 今後も有益な情報をこちらで発信していく予定です。
    コピペでツール作成!?メンタエクセルのサポートサイト『Sketto』 mentasketo.com/introduction_p...
    ご質問はこちらからどうぞ
    ⇒forms.gle/YLNyBpFJrxyFwoUbA
    ツイッター ⇒  / 911_takuya
    ブログ(メンタエクセル) ⇒ autoexcels.com
    note ⇒ note.com/takustunt
    【メンタエクセルチャンネル内おススメ動画】
    エクセル VBA マクロ超入門講座
    → • エクセル VBA マクロ超入門講座 一つの動...
    エクセルVBAにできることはコレ!ほとんどのことを自動化できる最高のアプリケーション! 
    → • エクセルVBAにできることはコレ!ほとんどの...
    エクセル VBA 31 他ブック内検索
    → • エクセル VBA 31 他ブック内検索 Wo...
    【タクヤのプロフィール】
     エクセル自動化、UWSC(PC自動化)などを武器に日々楽しく業務改善を図っている現役事務業サラリーマンです。
     ブラック状態の業務を極限までに自動化を図ることでホワイト化することに成功。実践で使える技術をお伝えします。
    【尊敬するおススメチャンネルはコチラです】
    伊川直助さん
    → / @naonaokeikei
    金子晃之さん
    → / @kanekoakiyuki
    ユースフル(元おさとエクセル)さん
    → / @youseful_skill
    なんだ!カンタン!Excel塾さん
    → / @excel-jyuku
    パソコンスキルの教科書さん
    → / @user-pj3fd6rl2h
    エクセル兄さん たてばやし淳さん
    → / lifeworkknowledge
    【おススメ動画リンク集】
    Excelでユーザーフォームを作成
    → • 【Excel】Excelでユーザーフォームを作成
    Excel仕事を10倍早く終わらせるテクニック20選
    → • Excel仕事を10倍早く終わらせるテクニッ...
    VBAでデータの転記処理をするPart1
    → • Video
    エクセルマクロVBAで出来ることを15の事例で紹介
    → • エクセルマクロVBAで出来ることを15の事例...
    #Twitterリンクは動画概要欄にあります!
    #VBA
    #エクセル
  • Навчання та стиль

КОМЕНТАРІ • 38

  • @user-jg9gq4df4h
    @user-jg9gq4df4h 2 роки тому +2

    とてもタイムリーに知りたい情報だったので、拝見できて嬉しかったです!

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      ご視聴ありがとうございます😄
      コードが概要欄にありますのでそちらもご利用ください♪

  • @TeamNND
    @TeamNND 5 місяців тому

    ありがとうございます!

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  5 місяців тому

      嬉しいです!ありがとうございます!モチベーション上がりました!今後とも頑張って良い動画届けます!

  • @yok2736
    @yok2736 20 днів тому

    教えて頂きたいのですが、このコードを使ったエクセルリストをメールで送って、送った先の人にも画像が見れるよう、埋め込み?の方法などありましたら、ご教授ください。よろしくお願いいたします。

  • @kumataro3972
    @kumataro3972 Рік тому

    いつも有益な動画をありがとうございます!現場ですぐに実践できて時短に貢献してくれています。
    今回はExcelファイルと写真の保管フォルダが同じフォルダ内にありましたが、別の例えば共有ファイルなどに写真が保管してある場合はどうしたら良いでしょうか。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  Рік тому +1

      その場合は直接ファイルパスを指定すればOKです!

  • @user-zl1iv9iv8r
    @user-zl1iv9iv8r 4 місяці тому

    とてもむつかしくて、わかりません。ゆっくり教えてもらったらたすかります。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  4 місяці тому

      ご意見ありがとうございます!

  • @fireflysnow8616
    @fireflysnow8616 2 роки тому +3

    分かりやすい動画有り難うございます。一つ質問させていただきたく存じます。今回の画像例はすべて顔写真なので画像の縦横の長さはあまり違いはなく、セルの高さに合わせることでセルに収まっていますが、画像が縦長だったり横長だったりがある場合は、セルの高さに合わせると横長の写真の場合はセルからはみ出すこともあります。
    横長の画像の場合はセルの幅に合わせないと収まらなくなってしまうことがあります。このような縦長、横長とサイズが様々な画像をセルに貼り付けていく場合は、どういうマクロになるのでしょうか?ご迷惑でなければご教示いただけますと大変有り難く存じます。何卒よろしくお願い申し上げます。

    • @seijaku3743
      @seijaku3743 2 роки тому +2

      If .BottomRightCell.Column > toClm Then
      .Width = Worksheets(shName).Cells(i, toClm).Width
      End If
      を.placement~ の下に追記とかでどうぞ

  • @user-zb5zx7ew1e
    @user-zb5zx7ew1e Рік тому +3

    ものすごくわかりやすく、無知な私でもコピペで実行できました。 解説もすごくわかりやすかったです。が ひとつ困ったことがあります。 それは検索値のA列に値が入っているところは問題ないのですが、途中からブランクになっていると、(間に空白セルはない状態です)画像ファイルの中の1種類の画像が全部最後まで貼りついてしまうのです。関連性は不明ですが その時々によって 貼りつく画像はちがいます。 昨年使ったときは問題なかったのですが、最近つかってみたらこんなことになってしまいました。 構文はさわっていないです。 でもう一度1から書いてみたのですが同じ結果です。 もし原因が特定できれば教えて頂けたら幸いです!

  • @user-vm8fw8su5u
    @user-vm8fw8su5u 2 роки тому +1

    いつもわかりやすい解説ありがとうございます
    VBA初心者です。教えてください。
    ファイルを閉じるときに、
    特定のシート内のセル範囲
    (sheets1のセルB1:D25)のデータを削除するというマクロを設定したいのですが
    VBAの書き方が分からず困ってます。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  Рік тому

      すみませんこちらではVBAの動画を最近は上げておりませんが、機会があれば動画作成しますね☺コメントありがとうございます♪

  • @user-sb6bc9th7e
    @user-sb6bc9th7e 2 роки тому +7

    実行を押す度に画像が上乗せされる状態になりますが画像が重複しないようなプログラムがあれば教えて頂きたいです。よろしくお願いいたします。

    • @secondlife4337
      @secondlife4337 Рік тому

      これは、毎回画像クリアすればいいんじゃないでしょうか?
      それか、セル毎で空白かどうかで画像の存在確認isemptyを使ってif文でいけそうですけどね。一度クリアがスッキリしたコードになりそうに思います。

  • @TenTem
    @TenTem 2 роки тому

    部署変更があれば、社員IDで探して変更するイメージですか?

  • @onescene_1cn
    @onescene_1cn 2 роки тому +2

    これって画像を参照するFileの中身を入れ替えちゃうと、
    勝手にエクセルの中身も変わってしまうのでしょうか。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      そうですね。変わってしまいます😄

  • @miyazaki416
    @miyazaki416 2 роки тому +2

    Top Left Heightの各行のWorksheets(shName).Cells (i,
    toclm)
    のところを選択されているセルに変更して使いたいのですがうまくいきません
    挿入したいセルが結合されているからでしょうか?range("A1:C5")など、、、
    activecell.Height
    とか
    selectioncell.Height
    とか
    にしてますが画像の大きさが小さくなってしまいます
    どうす!ば良いでしょうか?

    • @seijaku3743
      @seijaku3743 2 роки тому

      worksheets(shName).cells ~ .top などを Application.Selection.Top へ変更

  • @nagaken4988
    @nagaken4988 2 роки тому

    たびたびすみません。私の調べですと、shapes.addpictureを使うと思うのですが、引数が全然異なり、どう修正したらいいのか分かりません。

    • @user-sw7xp3sm6w
      @user-sw7xp3sm6w 2 роки тому

      With .Pictures.Insert(ThisWorkbook.Path & "\" & folderName & "\" & myFileName)

      With .Shapes.AddPicture(ThisWorkbook.Path & "\" & folderName & "\" & myFileName, msoFalse, msoTrue, 0, 0, -1, -1)

  • @SS-mp6kp
    @SS-mp6kp 2 роки тому

    ボタン作成したときに「画像挿入」というマクロ名はでてこずその部分は空欄でした…MACだとだめなんでしょうか。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      そうですね🙇‍♂️Macだと想定外の動きになることは多いですね💦

  • @nagaken4988
    @nagaken4988 2 роки тому +2

    いつも動画で勉強させいただいています。本当に分かりやすく、業務効率化に大変役立つものばかりです。
    1点質問させてください。同じコードで実行すると、画像がリンク状態になります。これをリンクではなく挿入させることは可能なのでしょうか?VBA初心者なので、やり方がわかりません。大変お忙しいと思いますが、教えていただけると幸いです。よろしくお願い申し上げます。

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      コメントありがとうございます!
      このコードにより画像リンクが挿入されるということですが、今回の動画と同じ条件ではない可能性がございます。
      そのパターンも調べさせていただきます。
      他の挿入方法につきまして動画にできる機会がありましたらまた情報をシェアさせていただきます😄

  • @flatdiamond
    @flatdiamond 2 роки тому

    概要欄のコードに¥では無く、\を使っているのは何故なんでしょう、どっちでも良いのかな

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      こちらは同じ意味になります。概要欄に張り付けるときに/に変換されてしまったのでそういう形になってます☺

  • @user-jz5bb1wf6w
    @user-jz5bb1wf6w 2 роки тому +1

    できなかった😭なんでだろう…

  • @user-kf3xv5un4f
    @user-kf3xv5un4f Рік тому +1

    お世話になっております。
    いつも有益な動画拝見させていただいております。
    当方全くのVBA初心者ななかご質問です。
    概要欄のテキストを貼り付けボタン作成⇨マクロの登録、実行までは問題なくいけたのですが、画像が全く意図していないところに貼り付けられてしまいます。汗
    触ったのは動画の通り、緑のメモがあるシート名・フォルダ名・列番号のみです。
    原因として考えられることはありますでしょうか?

  • @user-ko2xs6vt4w
    @user-ko2xs6vt4w 10 місяців тому

    Excelを使用するよりもAccessでやれば簡単だと思いますが、なぜExcelなんでしょうか。Accessだとバイナリのファイルをフィールドに保存が可能ですので画像以外のデータも読み書き可能です。

  • @user-et4dj7qt5x
    @user-et4dj7qt5x 2 роки тому +2

    ◎画像をセルに配置
    ☆仕様
    ・画像にセルの幅/列を合わせる
    ・セルのサイズに画像が追従する
    手動でやるのは非常に手間🥵
    ●手順
    フォルダに画像を準備

    • @user-et4dj7qt5x
      @user-et4dj7qt5x 2 роки тому

      *Dir関数

      *ファイルパスの取得
      画像を右C→ファイルパスをコピーする
      *¥はフォルダの中身という意味

    • @user-de1mp3fe1o
      @user-de1mp3fe1o  2 роки тому

      非常に助かります!ありがとうございます☺