
ご覧いただきありがとうございます。
VBA初心者です。
ダイアログボックスを開き画像ファイルを選択、1行目が見出し行になっている表のB2から6行ごとに結合したセルに画像を挿入し、隣のC列(6行ごと結合)に画像ファイル名(拡張子なし)が入る表を作りたいです。
結合していないセルの場合、以下のコードで作成できました。
6行ごとに結合したセルの場合は、どのように修正したらいいのでしょうか?
詳しい方、よろしくお願いいたします。
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Select Image Files"
.Filters.Clear
.Filters.Add "Image Files", "*.GIF; *.JPG; *.BMP; *.PNG; *.TIF", 1
.AllowMultiSelect = True
If .Show = -1 Then
Dim i As Long
For i = 1 To .SelectedItems.Count
Dim fileName As String
fileName = Left(Dir(.SelectedItems(i)), Len(Dir(.SelectedItems(i))) - 4)
Range("C" & i + 1).Value = fileName
Dim Picture As Picture
Set Picture = ActiveSheet.Pictures.Insert(.SelectedItems(i))
With Picture
With .ShapeRange
.LockAspectRatio = msoFalse
.Width = Range("B" & i + 1).Width
.Height = Range("B" & i + 1).Height
End With
.Left = Range("B" & i + 1).Left
.Top = Range("B" & i + 1).Top
.Placement = xlMoveAndSize
End With
Next i
End If
End With
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは
以下の点を修正すれば対応できると思います。
・対象のセルを6行おきにする
・貼り付ける対象を1セルではなく、.MergeAreaにする
ざっと、こんな感じでしょうか?
※ Withのネストを避ける等多少の変更をしてあります。
Sub Sample()
Dim i As Long, fileName As String
Dim rng As Range, sItems
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Select Image Files"
.Filters.Clear
.Filters.Add "Image Files", "*.GIF; *.JPG; *.BMP; *.PNG; *.TIF", 1
.AllowMultiSelect = True
If .Show = 0 Then Exit Sub
Set sItems = .SelectedItems
End With
For i = 1 To sItems.Count
fileName = Dir(sItems(i))
Set rng = Cells(i * 6 - 4, 2)
rng.Offset(, 1).Value = Left(fileName, InStrRev(fileName, ".") - 1)
Set rng = rng.MergeArea
With ActiveSheet.Pictures.Insert(sItems(i))
.Left = rng.Left
.Top = rng.Top
.Placement = xlMoveAndSize
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Width = rng.Width
.ShapeRange.Height = rng.Height
End With
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) VBAの間違い教えて下さい 5 2024/08/03 21:35
- Visual Basic(VBA) Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです 3 2024/02/05 22:10
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
このQ&Aを見た人はこんなQ&Aも見ています
-
修正依頼:【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
任意フォルダから画像をすべてエクセルの指定マスに貼り付けをしたい
Visual Basic(VBA)
-
エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法
Excel(エクセル)
-
-
4
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
5
エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
6
エクセルの計算式について(COUNTIFの応用)
Excel(エクセル)
-
7
VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
8
エクセルマクロについて教えて下さい。
Excel(エクセル)
-
9
エクセル マクロVBAについて教えてください。
その他(Microsoft Office)
-
10
Excelで<a>,<b>の入ったセルをcountifすると動作がおかしい。なぜ?
Excel(エクセル)
-
11
VBAでエクセルのテキストデータをクリップボードに格納したい。
Visual Basic(VBA)
-
12
エクセルでセルに入力する前は非表示にしたい
Excel(エクセル)
-
13
Excelの複数条件の関数
Excel(エクセル)
-
14
[Excel VBA]特定の条件で文字を削除&残す処理をするファイルを作成したいです
Visual Basic(VBA)
-
15
エクセル 入力があった場合のみ隣の関数を表示
Excel(エクセル)
-
16
同率順位の発生しないランキング表をエクセルで作成したい
Excel(エクセル)
-
17
考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
18
【ExcelVBA】dictionaryの重複判断の基準(セル結合だと違う値として認識される)
Visual Basic(VBA)
-
19
エクセルにて時間帯にて自動で表示を変える
Excel(エクセル)
-
20
エクセルで自動的にQRを表示させたいです。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
[VB.net] ボタン(Flat)のEnable...
-
質問58753 このコードでうまく...
-
【ExcelVBA】5万行以上のデー...
-
vbs ブック共有を解除
-
VBAでCOPYを繰り返すと、処理が...
-
vbaにてseleniumを使用したedge...
-
【マクロ】開いているブックの...
-
(EXCEL超初心者)EXCELの関数(ま...
-
算術演算子「¥」の意味について
-
Excel 範囲指定スクショについ...
-
2つのマクロでチェックボックス...
-
vbsでのwebフォームへの入力制限?
-
【マクロ】変数を使った、文字...
-
以下のプログラムの実行結果は...
-
VBA レジストリの値の読み方に...
-
Vba セルの4辺について罫線が有...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
【マクロ】値を渡されたプロシ...
おすすめ情報