
ご覧いただきありがとうございます。
以前、「ダイアログボックスを開き画像ファイルを選択、1行目が見出し行になっている表のB2から6行ごとに結合したセルに画像を挿入し、隣のC列(6行ごと結合)に画像ファイル名(拡張子なし)が入る表を作る」という件で以下のコードを作成していただいたのですが、
画像がリンク貼り付けになってしまい、メール等で送信すると見れなくなってしまいます。
リンクではなく画像として挿入するためにはどうしたらいいでしょうか?
詳しい方、よろしくお願いいたします。
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
No.2ベストアンサー
- 回答日時:
No1です。
もともとはこれ(↓)ですよね?
https://oshiete.goo.ne.jp/qa/13930981.html
質問者様がご提示の方法をそのまま踏襲した回答にしてありますので、Pictures.Insertでの挿入方法を取っていました。
>Shapes.AddPictureの場合は画像サイズの指定しなければいけないので。。。
全体でセルサイズに合わせるように指定しているのですから、そのまま指定すれば良いだけです。
With ~~ End With
の内容をまとめて、以下の1文で済ませられます。
ActiveSheet.Shapes.AddPicture sItems(i), False, True, rng.Left, rng.Top, rng.Width, rng.Height
あるいは
>Set rng = rng.MergeArea
のセンテンスも含めてしまって、
With rng.MergeArea
ActiveSheet.Shapes.AddPicture sItems(i), False, True, .Left, .Top, .Width, .Height
End With
でも良いでしょう。
ただし、上記では .Placement の属性設定はしていないので、そちらも必要であるなら追加で設定してください。
No.1
- 回答日時:
こんばんは
ひょっとすると、私が回答したものかもしれませんね。
後からリンク形式を変更する方法は見つからなかったのですが、挿入する際に指定する方法に変えることで可能と思います。
具体的には、Pictures.Insertではなく、Shapes.AddPictureを用いて、第二、第三引数にFalse、Trueを指定しておけばリンクにはならないはずです。
この結果、ファイルに画像が埋め込まれるようになるので、容量は増加すると思います。
https://learn.microsoft.com/ja-jp/office/vba/api …
ご返答ありがとうございます。
容量の増加は全く問題なく、Shapes.AddPictureの使用まではたどり着けたのですが、初心者のためそのあとのコードが全く分かりません。
上手くいかず、エラーになってしまいます。
Shapes.AddPictureの場合は画像サイズの指定しなければいけないので。。。
もう少し粘ってみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) VBA 1 2023/04/27 13:37
- Visual Basic(VBA) 【VBA】飛び飛びの3セルに"完了"かもしくは"支援なし"の文字が入っていたら、計算を実行したい 2 2023/09/26 04:21
- Visual Basic(VBA) エクセルVBAについて 1 2024/05/23 01:13
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
このQ&Aを見た人はこんなQ&Aも見ています
-
性格悪い人が優勝
できるだけ性格悪い人になって回答をお願いします。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
自分用のお土産
国内や海外に旅行へ行った時、自分用のお土産ってどれくらい買いますか?
-
【VBA】 結合セルに複数画像とファイル名一括挿入する方法
Visual Basic(VBA)
-
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
-
4
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
5
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
6
算術演算子「¥」の意味について
Visual Basic(VBA)
-
7
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
8
VBAのループ処理について教えてください
Visual Basic(VBA)
-
9
Vba 型が一致しません(エラー13)のセルを特定する方法を教えてください
Visual Basic(VBA)
-
10
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
11
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
12
マイクロソフトがvbを捨てたのは何故ですか C#は変数の型指定ひとつとっても最近の主流とはかけ離れて
その他(プログラミング・Web制作)
-
13
VBAの間違い教えて下さい
Visual Basic(VBA)
-
14
VBA 入力箇所指定方法
Visual Basic(VBA)
-
15
VBAコードのインデント表示
Visual Basic(VBA)
-
16
【VBA】値を変更しながら連続でPDFを作成し,それらに印刷設定をした状態で結合するコード
Visual Basic(VBA)
-
17
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
18
Vba ファイル書き込み時に書き込みエラーを回避する方法を教えてください
Visual Basic(VBA)
-
19
エクセルvbaの対象セルに色をつける 例えば a日付 b種類 c値段 dその他 にんじん 50 ぴー
Visual Basic(VBA)
-
20
アセンブリ言語について。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードの図形にマクロを登録で...
-
【ExcelVBA】5万行以上のデー...
-
改行文字「vbCrLf」とは
-
2つのマクロでチェックボックス...
-
Excelのマクロについて教えてく...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
【マクロ】値を渡されたプロシ...
-
VBAの質問(Msgboxについて)です
-
Excel 範囲指定スクショについ...
-
現在のブックを閉じないで、マ...
-
【マクロ】切取りの場合、形式...
-
Excelマクロで使うVBAコードを...
-
VBAの「To」という語句について
-
VBAでエクセルのテキストデータ...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
エクセルVBAで在庫の組み換え処...
-
WindowsのOutlook を VBA から...
-
マクロVBAについて、コードを教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
現在のブックを閉じないで、マ...
-
算術演算子「¥」の意味について
-
VBAの「To」という語句について
-
以下のプログラムの実行結果は...
-
マクロVBAです。 どなたかコー...
-
VBAでFOR NEXT分を Application...
-
VBAについてです。 どなたかご...
-
質問58753 このコードでうまく...
-
ダブルクリックで貼り付けた画...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelのマクロについて教えてく...
-
エクセルVBA 段落番号自動取得方法
-
えくせるのVBAコードについて教...
-
ExcelのVBAコードについて教え...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】モジュール変数の記...
-
Vba FileSystemObject オブジェ...
-
Vba WorkBooks.Openについて教...
おすすめ情報